0

我知道子类不能从最终的超类继承,但是我书中的这个子类部分从未指出在嵌套类的情况下会发生什么。

4

3 回答 3

1

不。

使类 final 的全部意义在于它不能被继承。

请参阅此处的最后一段

于 2013-09-13T23:00:37.123 回答
1

不,JVM 将嵌套类视为Outer$Inner二进制兼容性,不会尝试用它扩展最终类,无论是否内部。事实上,除了通常不为运行时/链接时保留的编译时差异之外,它只不过是一个静态内部类,它只是一个$名称中带有 a 的类。编译器只是更早地捕获它。

final 类中的内部类很好,因为没有隐含或给出扩展/子类型关系。

试试看。您的编译器不会因为错误而将您打死。它最好的特性是它的耐心,即使它有严格的语法。自己检查会比在这里问更快。

于 2013-09-13T23:01:34.047 回答
0

我想我首先误解了你的问题。不过要彻底:

嵌套类不从其父类继承,因此最终类可以包含内部类,因为外部类的每个实例都将包含内部类(除非在声明内部类时使用静态)。外部类和内部类之间的关系没有隐式继承。

此外,内部类不能从外部类继承,因为外部类被认为是最终的,因此永远不能扩展。

于 2013-09-13T23:04:54.580 回答