Java抽象类与接口的区别-阿里云开发者社区

开发者社区> 艾贺> 正文

Java抽象类与接口的区别

简介: 看到题目的时候,你掌握这个知识点了吗? 图片来源与网络 常见面试问题如下: 接口和抽象类的区别,什么时候使用? 抽象类和接口的相同点和不同点? 总之就是经常问到的问题了。
+关注继续查看

看到题目的时候,你掌握这个知识点了吗?


img_f6b91097c99c0cb464ca4405be45d229.png
图片来源与网络

常见面试问题如下:

  • 接口和抽象类的区别,什么时候使用?
  • 抽象类和接口的相同点和不同点?

总之就是经常问到的问题了。官方文档有句很逗的话,说给面试官听,估计很有意思。

img_ac060cc340deccb63d694a1d7e8fb5ee.png
Java语言规范

所有的接口都是隐式的抽象声明。

Abstract class vs Interface

抽象类与接口都是用于功能的抽象。

  • 方法: 接口只能有抽象方法,抽象类可以有抽象方法和非抽象方法。Java8以后,接口可以直接定义default和static方法了。抽象类可以有protect和private方法。
  • 成员变量:接口中的成员变量默认是static和final的,抽象类可以像常规的对象一样定义各种成员变量。可以是非static和final的
  • 实现:接口不能实现其他的接口,只能继承一个其它的接口。抽象类可以实现多个接口。
  • 构造器:抽象类可以有构造器,接口不能有构造器。
  • main方法: 抽象类可以有main方法,并且我们可以运行它。接口不能有main方法。
  • 速度:抽象类速度更快一些,接口需要时间寻找类中的实现方法。

使用场景

Java8以后可以直接在接口中定义default方法和static方法,如此接口与抽象类之间的差异就小了一些。

抽象类使用场景

  • 当你需要定义非静态和和或final类型的成员变量时,想要修改类中某些成员的状态的时候。考虑使用抽象类。
  • 如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。
  • 有时候一个类中全部都是静态方法,无需实例化的类可以考虑使用抽象类

接口使用场景

  • 所有的定义的方法必须要实现的时候,完全的抽象考虑使用接口
  • 一个类需要实现多于一个的接口。这个也叫做多继承

最后

解释一个常见的知识点

参考

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【阿里云开发者学堂出品】2021大厂面试题500+免费赠送
无论是刚入职场的小白,还是想要升职加薪的开发者,都可领取的面试弹药
5 0
OMG,12 个精致的 Java 字符串操作小技巧,学它(3)
OMG,12 个精致的 Java 字符串操作小技巧,学它
4 0
阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
1 0
OMG,12 个精致的 Java 字符串操作小技巧,学它(2)
OMG,12 个精致的 Java 字符串操作小技巧,学它
4 0
面试了十个应届生九个都没用过TreeMap,你确定你们是个 Java 程序员?(2)
面试了十个应届生九个都没用过TreeMap,你确定你们是个 Java 程序员?
4 0
全网首发:C++中通过POST向服务器发送JSON的代码
全网首发:C++中通过POST向服务器发送JSON的代码
4 0
OMG,12 个精致的 Java 字符串操作小技巧,学它(1)
OMG,12 个精致的 Java 字符串操作小技巧,学它
4 0
为什么?为什么?Java处理排序后的数组比没有排序的快?想过没有?
为什么?为什么?Java处理排序后的数组比没有排序的快?想过没有?
1 0
Jibx插件使用maven构建Error loading class java.lang.CharSequence错误
Jibx插件使用maven构建Error loading class java.lang.CharSequence错误
6 0
Java面试官问我懂不懂LinkedHashMap,我一口气说了五分钟
Java面试官问我懂不懂LinkedHashMap,我一口气说了五分钟
4 0
+关注
艾贺
专注开发,架构知识
248
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载