抽象类与接口类的区别

在实际的开发中可以发现抽象类与接口的定义形式非常相似,从JDK1.8开始就特别明显了,在JDK1.8中接口也可以定义default或static方法了,但是这两个依然有明显的定义区别:

1、定义。

抽象类:abstract class 抽象类名称{}

接口类:interface class 接口类名称{}

2、组成。

抽象类:构造方法、普通方法、静态方法、全局常量、成员

接口类:抽象方法、全局常量、普通方法、static

3、权限。

抽象类:可以使用各种权限定义

接口类:只能使用public

4、子类使用。

抽象类:子类通过extends可以继承一个抽象类

接口类:子类使用implements关键字可以实现多个接口类。

5、两者关系。

抽象类:抽象类可以实现若干个接口

接口类:接口不允许继承抽象类,但是允许继承多个父接口

6、使用。

共同点:1)抽象类或接口必须定义子类;

2)子类一定要覆写抽象类或接口中的全部抽象方法;

3)通过子类的向上转型实现抽象类或接口对象实例化

当抽象类和接口都可以使用的情况下优先考虑接口,因为接口可以避免子类的单继承局限。

另外从一个正常的设计角度而言,也需要先从接口来进行项目的整体设计。


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容