在Kotlin中,嵌套类型和伴随对象不会自动继承。
此行为并非特定于Java,您可以仅在Kotlin中重现相同的行为:
open class base { class Nested}class Derived : base()val base = base.Nested::class // OKval derived = Derived.Nested::class // Error: 'Nested' unresolved因此,您必须显式地使用基类对嵌套类进行限定。
为了避免Java中与通过派生类型访问静态成员/类有关的某些混乱,在Kotlin中故意使此行为更加严格。您还可以看到,当使用派生类名称引用基类中的静态符号时,许多IDE会在Java中发出警告。
关于术语,Kotlin对 内部类 (即那些用
inner关键字注释的 类)
有清晰的定义。并非所有嵌套类都是内部类。另请参阅此处。



