阅读最新文章的方式!
一、区别
抽象类(abstract) | 接口(interface) | |
---|---|---|
实现 | × | √ |
继承 | √ | × |
能实例化 | × | × |
实现或继承使用的关键字 | extends | implements |
实现或继承的类叫做 | 子类 | 类 |
可以多继承或多实现 | × | √ |
方法声明 | √ | √ |
方法实现 | √ | × |
方法的标识符 | punlic、private、protected | public |
实现抽象方法 | √ | √ |
变量 | 普通变量 | 静态不可修改常量 |
作用 | 重构 | 设计 |
侧重点 | 抽象类别 | 抽象功能 |
可以有构造方法 | √ | × |
注意:
- 接口的方法也是可以实现的,但是需要加上final标识符
- 如果在接口中定义一个成员变量的话,默认会加上public static final
二、使用场景
接口
- 不关注方法的实现逻辑。只是对方法做一个规范,并不关心它的实现逻辑。
- 有一系列有类似功能的类。定义一个接口,统一管理这些类的实现,在使用的时候,只需要通过一个接口就可以获取这些类。
抽象类
- 需要抽象方法和实现方法共存。
- 存在方法或变量需要共享。
三、总结
抽象类更像一个类的树干,而接口就像一个类的树枝。
树枝可以有千万条,但是树干只能有一个。
在java中,所有的类最终都是继承与Object,我们可以用一个类来继承Object后提供给其它类继承。
——————————————————————————————
你知道的越多,不知道的就越多。
如果本文章内容有问题,请直接评论或者私信我。如果觉得我写得还不错的话,点个赞也是对我的支持哦
未经允许,不得转载!