【发布时间】:2018-03-13 22:04:08
【问题描述】:
自从 Java 9 发布以来,还有什么好的理由再使用抽象类吗?从现在开始,您似乎可以使用接口做所有事情,而且您可以使用接口进行多重继承。
- 常量变量
- 抽象方法
- 默认方法
- 静态方法
- 私有方法
- 私有静态方法
我错过了什么吗?除了向后兼容之外,找不到任何好的理由。
【问题讨论】:
-
大量抽象类包含实例级字段,因此无法转换为等效接口。也许您想强制从特定的超类继承,以保证您对它的某些内部具有包级别的访问权限。第二种情况可能不太常见,但您可以看到它在 JDK 的某些部分中使用(例如,在套接字选择器 API 中)。
标签: java interface abstract-class abstract java-9