首先一句话:

Java8后(1)interface支持default和static方法有实现,abstract class依然是抽象方法和非抽象方法,(2)可同时实现多个interface,(3)但成员变量只能是static final的。

我的理解:

abstract class的出现是为了防止直接被实例化,而是希望业务程序员自行实现具体方法,例如:你是一种几何形状,我知道你能绘画即draw();但具体如何绘画,请自己实现。interface在abstract的基础上更近一步,只提供抽象方法,所有方法全部自己实现。

那么出于这种考虑,为什么Java8之后引入了默认方法和静态方法呢:

默认方法:方便统一修改公共方法,而不需要在接口实现变动时修改所有的实现。

静态方法:同理,但不能被重写

最新文章

  1. Good Bye 2016 - D
  2. IDDD 实现领域驱动设计-由贫血导致的失忆症
  3. OC 单例模式
  4. Spring配置文件中别名的使用
  5. apache 局域网访问
  6. 网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.
  7. 【QQ技术】群文件报毒怎样下载?~ 变相绕过QQ复杂检验过程
  8. make the innerText in the html element can not be selected
  9. cf#306D. Regular Bridge(图论,构图)
  10. Java内存管理和垃圾回收
  11. C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
  12. Sql Server_笔记
  13. 程序员求职之道(《程序员面试笔试宝典》)之看着别人手拿大把的offer,不淡定了怎么办?
  14. DFT 展开式和 FFT推导
  15. properties + IO 读取配置文件
  16. Spring的Resource
  17. CentOS7.3 ARM虚拟机扩容系统磁盘
  18. IIS 加载 JSON 错误 404 解决办法
  19. php7 curl返回false error返回空串
  20. hive复杂类型实战

热门文章

  1. 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM)
  2. Go语言核心36讲32
  3. ftp多用户多目录配置
  4. Linux下用rm误删除文件的三种恢复方法
  5. nginx配置文件讲解及示例(可复制)
  6. Java常用开发文档及工具
  7. apache文件工具类的使用:org.apache.commons.io.FileUtils
  8. day36-ThreadLocal
  9. formly-form 动态表单
  10. python 中变量的命名规则与注释