嵌套的内部 class 是否会自动继承 java 中外部 class 的 superclass?
Does a nested inner class automatically inherit from superclass of outer class in java?
假设我有一个外部 class A,它嵌套在内部 Class B。A 是 C 的子class。然后 B 也是子class 的C?由于 B 可以访问 A 的所有私有成员,因此它的那个(public 和受保护)是超级 class,所以我认为 B 成为 C.
的子class
我的思路对吗?
非常感谢任何帮助。
您似乎在描述以下内容:
class C {}
class A extends C {
static class B {}
}
作为 A
中的嵌套 class 不会 使 B
成为 C
的子class .访问成员并不是子class.
的定义特征
假设您尝试将 B
类型的对象分配给 C
.
类型的变量
C c1 = new A(); // OK -- A is a subclass of C
C c2 = new A.B(); // Not OK
如果 B
是 C
的子 class,后者将是合法的赋值。但事实并非如此。
我不这么认为。如果你想让 B 扩展 C,你可以明确地说:
class C {}
class A extends C {
static class B extends C {
//Todo...
}
}
嵌套的 class B 只是 A 的一个(静态)成员,就像它的任何其他成员一样。您可以在 B 中访问 public 和 protected 甚至封装 C 的访问方法和变量,因为 A 从 C 继承了这些成员。由于 B 是 A 的嵌套 class,您可以访问(静态)成员可以从其他 class 或不继承的 A 的。
假设我有一个外部 class A,它嵌套在内部 Class B。A 是 C 的子class。然后 B 也是子class 的C?由于 B 可以访问 A 的所有私有成员,因此它的那个(public 和受保护)是超级 class,所以我认为 B 成为 C.
的子class我的思路对吗?
非常感谢任何帮助。
您似乎在描述以下内容:
class C {}
class A extends C {
static class B {}
}
作为 A
中的嵌套 class 不会 使 B
成为 C
的子class .访问成员并不是子class.
假设您尝试将 B
类型的对象分配给 C
.
C c1 = new A(); // OK -- A is a subclass of C
C c2 = new A.B(); // Not OK
如果 B
是 C
的子 class,后者将是合法的赋值。但事实并非如此。
我不这么认为。如果你想让 B 扩展 C,你可以明确地说:
class C {}
class A extends C {
static class B extends C {
//Todo...
}
}
嵌套的 class B 只是 A 的一个(静态)成员,就像它的任何其他成员一样。您可以在 B 中访问 public 和 protected 甚至封装 C 的访问方法和变量,因为 A 从 C 继承了这些成员。由于 B 是 A 的嵌套 class,您可以访问(静态)成员可以从其他 class 或不继承的 A 的。