首页 > 其他分享 >抽象类

抽象类

时间:2024-01-13 22:45:57浏览次数:20  
标签:子类 abstract 抽象 抽象类 方法 public

概述

abstract修饰符可以用来修饰方法也可以用来修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。

抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。

 

抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。

 

抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。

子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。

概念

接口:插座约束它的插头形状,但并不约束什么电器来使用它。

例子

子类抽象不会报错。

 

思考题

  1. 抽象类存在构造器吗?

  2. 抽象类存在的意义是什么?

一个操作非常复杂,但是要执行多次,就可以抽象出来,利用子类反复重写。提高开发效率。

代码

//Java-零基础学习/src/oop/demo08/Action
package oop.demo08;

//abstract 抽象类:类   extends:单继承     (接口可以多继承)
public abstract class Action {

   //约束,有人帮我们实现
//   abstract 抽象方法,只有方法名字,没有方法的实现
   public abstract void doSomething();

   public void hello() {

  }

   //1. 不能new这个抽象类,只能靠子类去实现它:约束!
   //2. 抽象类中可以写普通的方法。
   //3. 抽象方法必须在抽象类中。
}
//Java-零基础学习/src/oop/demo08/A
package oop.demo08;

//抽象类的所有方法,继承了它的子类,都必须要实现它的方法。
// 除非子类也是抽象类,就由子子类来实现。
public class A extends Action {
   @Override
   public void doSomething() {

  }
}
 

标签:子类,abstract,抽象,抽象类,方法,public
From: https://www.cnblogs.com/poiuyjoey/p/17963136

相关文章

  • 27-抽象类 Abstract
    抽象类是一个特殊的父类,其内部允许编写抽象方法 publicclassAbstractDemo{publicstaticvoidmain(String[]args){//抽象类不能实例化//Animalanimal=newAnimal();//error:Animalisabstract;cannotbeinstantiatedCatca......
  • 抽象类
    抽象类【一】什么是接口【1】IAnimal.javaJava语言中的接口很好的展现了接口的含义:IAnimal.javaJava的Interface接口的特征是一组功能的集合,而不是一个功能接口的功能用于交互,所有的功能都是public,即别的对象可操作接口只定义函数,但不涉及函数实现这些功能是相关......
  • 抽象类
    在python中实现抽象类抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计(1)导入模块importabc(2)不重写抽象类方法其实就是在子类中不重写抽象类importabc#利用abc模块实现抽象类classAll_file(metaclass=abc.ABCMeta):......
  • python面向对象之派生、组合、抽象类、反射
    【派生】在子类派生的新方法中如何重用父类的功能?  【组合】(定义) (案例) (组合和继承的区别) 【抽象类】(定义) (案例) 实例化 (总结) 【反射】什么是反射 如何反射 实现反射机制的步骤 解决办法 ......
  • Java中的抽象类
    抽象类必须使用abstract关键声明,例如抽象类MyAbstractStudy:publicabstractclassMyAbstractStudy{}不能使用抽象类创建对象。抽象类中可以没有抽象方法。抽象方法必须为public或者protected,缺省情况下为public。抽象类的子类必须实现父类的抽象方法,如果没有则需要声明子类也为ab......
  • Unity引擎2D游戏开发,有限状态机&抽象类多态
    状态机与抽象类观察如下代码:publicclassAttackFinish:StateMachineBehaviour{//OnStateEnteriscalledwhenatransitionstartsandthestatemachinestartstoevaluatethisstateoverridepublicvoidOnStateEnter(Animatoranimator,AnimatorStateIn......
  • java中属性和变量的区别与final和抽象类
    属性和变量的区别变量必须要有初始值;属性可以没有初始值;变量的范围只在当前大括号内有效;属性是对象在哪里使用就在哪里有效;属性的作用范围要比变量的大一些属性和变量publicclassstudy01{ publicstaticvoidmain(String[]args){ //这是一个变量Stringnam......
  • 秦疆的Java课程笔记:74 面向对象 抽象类
    abstract修饰符可以用来修饰方法,也可以用来修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的......
  • 抽象类、抽象方法、接口
    一、抽象类抽象类不是必须具有抽象方法,但是抽象方法一定是抽象类。方法和类都需要加上abstract修饰符。如果一个方法为抽象方法,则子类必须重写方法,如果子类不重写父类抽象方法,则子类需要声明为抽象类。抽象类可以有非抽象方法,抽象方法需要实现。调用抽象类的抽象方法或者非抽......
  • Python面向对象之抽象类与抽象方法
    C++和Java中面向对象中有抽象类或接口的说法,在python中没有abstract或interface这样的内置关键字。但是abc模块(AbstractBaseClasses)实现了这些抽象类检查的功能,其中ABC是抽象基类。@abstractmethod表示这个方法是一个抽象方法,子类必须重写。关于抽象类与抽象方法的示例代码如下:......