【问题标题】:Is There Any Good Reason to Use Abstract Class with New Additions to Interfaces in Java 9? [duplicate]在 Java 9 中是否有充分的理由使用带有新接口的抽象类? [复制]
【发布时间】:2018-03-13 22:04:08
【问题描述】:

自从 Java 9 发布以来,还有什么好的理由再使用抽象类吗?从现在开始,您似乎可以使用接口做所有事情,而且您可以使用接口进行多重继承。

Java SE 9: Interfaces

  • 常量变量
  • 抽象方法
  • 默认方法
  • 静态方法
  • 私有方法
  • 私有静态方法

我错过了什么吗?除了向后兼容之外,找不到任何好的理由。

【问题讨论】:

  • 大量抽象类包含实例级字段,因此无法转换为等效接口。也许您想强制从特定的超类继承,以保证您对它的某些内部具有包级别的访问权限。第二种情况可能不太常见,但您可以看到它在 JDK 的某些部分中使用(例如,在套接字选择器 API 中)。

标签: java interface abstract-class abstract java-9


【解决方案1】:

确实,你错过了一些东西:

  • 非常量变量
  • 受保护的和包私有的方法

一般来说,您不必仅仅因为可以使用某项功能。尤其要小心多重继承。它会使事情变得非常迅速。

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 2011-06-15
    • 2010-09-20
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2013-03-09
    相关资源
    最近更新 更多