相同点
- 都代表系统的抽象层,有助于系统的松耦合;
- 都不能被实例化;
- 都能包含抽象方法;
- 从JDK8开始,接口中也可以像抽象类一样,提供默认的实现(方法必须要用default修饰)
不同点
- 接口中默认的成员变量都是public static final类型的,必须被显式的初始化;而抽象类中可以定义各种类型的成员变量和静态变量;
- 一个类只能继承一个直接的父类;但一个类可以实现多个接口;
接口和抽象类的使用场景
一般使用接口作为系统与外界的交互窗口,抽象类作为系统中功能的扩展点。
相同点
不同点
接口和抽象类的使用场景
一般使用接口作为系统与外界的交互窗口,抽象类作为系统中功能的扩展点。