抽象类和接口的区别(考点)
-
定义抽象类的关键字是abstract class,而定义接口的关键字是interface。
-
继承抽象类的关键字是extends,而实现接口的关键字是implements。
-
继承抽象类支持单继承,而实现接口支持多实现。
-
抽象类中可以有构造方法,而接口中不可以有构造方法。
-
抽象类中可以有成员变量,而接口中只可以有常量。
-
抽象类中可以有成员方法,而接口中只可以有抽象方法。
-
抽象类中增加方法时子类可以不用重写,而接口中增加方法时实现类需 要重写(Java8以前的版本)。
-
从Java8开始增加新特性,接口中允许出现非抽象方法和静态方法,但非抽象方法需要使用default关键字修饰。
-
例如:public default void show(){
。。。
}
public static void test(){
。。。
}
- 增加静态方法,隶属于类层级,也就是接口层级,使用“接口.静态方法”进行调用
-
-
从Java9开始增加新特性,接口中允许出现私有方法。
- 可以将接口内的冗余代码打包成私有方法,仅供本类中的方法使用。
-
成员区别
-
抽象类
变量,常量;有构造方法;有抽象方法,也有非抽象方法
-
接口
常量;抽象方法
-
-
关系区别
-
类与类
继承,单继承
-
类与接口
实现,可以单实现,也可以多实现
-
接口与接口
继承,单继承,多继承
-
-
设计理念区别
-
抽象类
对类抽象,包括属性、行为
-
接口
对行为抽象,主要是行为
-

浙公网安备 33010602011771号