java基础回顾之抽象类与接口的比较

在这里插入图片描述
,抽象类含有无参构造方法的,在项目中这样查看:
在这里插入图片描述
通过 javap -c class文件,可以查到。
在这里插入图片描述

接口:
在这里插入图片描述
在这里插入图片描述
项目升级的时候,如果接口增加功能,那么不能加抽象方法,加了会使所有的实现类报错。加默认方法就可以了。实现类不会报错。实现类可以实现接口的默认方法增加功能。

在这里插入图片描述

总结 : 抽象类与接口的异同点
相同点:
1)都可以定义抽象方法
2)都不能实例化对象
3)都可以定义public static final常量 , public static方法
4)定义的抽象方法需要被重写
不同点:
1)定义方式不同
抽象类使用 abstract class 定义
接口使用 interface定义
2) 内容不同
抽象类中除了抽象方法外, 还有构造方法等普通类有的所有成员
接口中除了抽象方法外, 可以定义default修饰的方法, 没有构造方法
3)使用方式不同
抽象类一般作为其他类的父类存在, 需要被extends继承
接口需要类通过implements实现
4)类只支持单继承, 接口可以支持多继承
5)应用场景不同
如果仅仅是为了 扩展类的功能, 优先选择使用接口
抽象类可以描述类之间的层次关系; 如果除了功能扩展外,还需要保存数据选择抽象类; 抽象类可以约束所有的子类都具有某个功能.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章