Java 接口和抽象类的区别
其他
2021-03-06 02:12:09
阅读次数: 0
抽象类(abstract class)
- 抽象类和普通类一样可以拥有成员变量和普通方法。
- 抽象类中的抽象方法必须是public(默认)或protected
- private报错是因为无法被子类实现
接口(interface)
- 行为的抽象
- 接口中的变量会被隐式地指定为public static final变量
- 接口中的方法会被隐式地指定为public abstract方法
- 另外JDK8允许接口中有 默认方法 、静态方法 。JDK9允许接口中有 私有方法 。它们都可以有具体的实现。
区别
- 抽象类可以提供成员方法的具体实现细节,而接口中只能存在public abstract方法。
- 抽象类中的成员变量可以使各种类型,接口中只能被public static final修饰
- 单继承多实现(一个类只能继承一个抽象类,可以实现多个接口)
- 抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象
- 抽象类比接口的最大优势是能够在后续添加方法,并保持向前兼容(提供一个具体实现方法或空实现)
转载自blog.csdn.net/yu540135101/article/details/113256176