Java的抽象类和接口

雨点打透心脏的1/2处 2022-09-05 01:43 317阅读 0赞

1. 抽象类

  1. 抽象类必须使用abstract修饰,抽象方法也必须使用abstract修饰
  2. 抽象类不能被实例化
  3. 抽象方法可以包含成员变量、方法(普通方法和抽象方法都行)、构造器、初始化块、内部类(接口、枚举)
  4. 含有抽象方法的类只能被定义为抽象类
  5. 抽象类的子类如果没有实现所有的抽象方法,那么这个子类也是抽象类

2. 接口

Java8和Java9都对接口进行了,然而网上的资料很少有更新。

  1. 接口的修饰符可以是public,或者省略
  2. 接口不能包含构造器和初始化块
  3. 接口可以包含成员变量(只能是静态常量)、方法(只能是抽象方法、类方法、默认方法或私有方法)、内部类(包括内部接口、枚举)

3.共性

  1. 都不能被实例化
  2. 都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法

4. 区别

  1. 、接口只能包含抽象方法、静态方法、默认方法和私有方法,不能为普通方法提供方法实现;抽象类可以包含普通方法
  2. 接口只能定义静态常量,不能定义普通成员变量;抽象类既可以定义普通成员变量,也可以定义静态常量
  3. 接口不包含构造器;抽象类可以有构造器,都是并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作
  4. 接口不能包含初始化块;抽象类可以包含初始化块
  5. 一个类只能有一个直接父类;但是一个类可以实现多个接口

发表评论

表情:
评论列表 (有 0 条评论,317人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA抽象接口

    抽象类: 定义一个类的时候,常常需要定义一些方法来描述该类的行为特征,但有时候这些方法的实现方式无法确定。 针对这种情况,Java允许在定义方法的时候可以不写方法体,不

    相关 Java抽象接口

    父类定义了子类中的共同行为,接口定义不同类的共同行为。 抽象类 抽象类不可 new 一个实例,可以包含抽象方法,没有实现,这些方法在子类中实现。 使用 abstrac