Fork me on GitHub

抽象类和接口的区别(考点)

  • 定义抽象类的关键字是abstract class,而定义接口的关键字是interface。

  • 继承抽象类的关键字是extends,而实现接口的关键字是implements。

  • 继承抽象类支持单继承,而实现接口支持多实现。

  • 抽象类中可以有构造方法,而接口中不可以有构造方法。

  • 抽象类中可以有成员变量,而接口中只可以有常量。

  • 抽象类中可以有成员方法,而接口中只可以有抽象方法。

  • 抽象类中增加方法时子类可以不用重写,而接口中增加方法时实现类需 要重写(Java8以前的版本)。

  • 从Java8开始增加新特性,接口中允许出现非抽象方法和静态方法,但非抽象方法需要使用default关键字修饰。

    • 例如:public default void show(){

      ​ 。。。

      ​ }

      ​ public static void test(){

      ​ 。。。

      ​ }

      • 增加静态方法,隶属于类层级,也就是接口层级,使用“接口.静态方法”进行调用
  • 从Java9开始增加新特性,接口中允许出现私有方法。

    • 可以将接口内的冗余代码打包成私有方法,仅供本类中的方法使用。
  • 成员区别

    • 抽象类

      ​ 变量,常量;有构造方法;有抽象方法,也有非抽象方法

    • 接口

      ​ 常量;抽象方法

  • 关系区别

    • 类与类

      ​ 继承,单继承

    • 类与接口

      ​ 实现,可以单实现,也可以多实现

    • 接口与接口

      ​ 继承,单继承,多继承

  • 设计理念区别

    • 抽象类

      ​ 对类抽象,包括属性、行为

    • 接口

      ​ 对行为抽象,主要是行为

posted @ 2022-02-15 16:13  Oneway666  阅读(285)  评论(0)    收藏  举报