说我有一个外部类A,它嵌套了内部类B。A是C的子类。那么B也是C的子类吗?由于B可以访问A的所有私有成员,因此可以访问A的(公共和受保护的)超类,因此我认为B成为C的子类。
我的思路正确吗?
非常感谢您的帮助。
没有在A
中成为嵌套类并不等于成为A
的超类的子类。访问成员不是成为子类的定义特征。
假设您尝试将类型为B
的对象分配给类型为C
的变量。]>
class C {} class A extends C { static class B {} } ... C c1 = new A(); // OK -- A is a subclass of C C c2 = new A.B(); // Not OK
如果
B
是C
的子类,则后者将是合法的转让。但事实并非如此。