【一句话】Java8后abstract class和interface的区别
2024-10-21 06:12:58
首先一句话:
Java8后(1)interface支持default和static方法有实现,abstract class依然是抽象方法和非抽象方法,(2)可同时实现多个interface,(3)但成员变量只能是static final的。
我的理解:
abstract class的出现是为了防止直接被实例化,而是希望业务程序员自行实现具体方法,例如:你是一种几何形状,我知道你能绘画,即draw();但具体如何绘画,请自己实现。interface在abstract的基础上更近一步,只提供抽象方法,所有方法全部自己实现。
那么出于这种考虑,为什么Java8之后引入了默认方法和静态方法呢:
默认方法:方便统一修改公共方法,而不需要在接口实现变动时修改所有的实现。
静态方法:同理,但不能被重写
最新文章
- Good Bye 2016 - D
- IDDD 实现领域驱动设计-由贫血导致的失忆症
- OC 单例模式
- Spring配置文件中别名的使用
- apache 局域网访问
- 网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.
- 【QQ技术】群文件报毒怎样下载?~ 变相绕过QQ复杂检验过程
- make the innerText in the html element can not be selected
- cf#306D. Regular Bridge(图论,构图)
- Java内存管理和垃圾回收
- C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
- Sql Server_笔记
- 程序员求职之道(《程序员面试笔试宝典》)之看着别人手拿大把的offer,不淡定了怎么办?
- DFT 展开式和 FFT推导
- properties + IO 读取配置文件
- Spring的Resource
- CentOS7.3 ARM虚拟机扩容系统磁盘
- IIS 加载 JSON 错误 404 解决办法
- php7 curl返回false error返回空串
- hive复杂类型实战