为了账号安全,请及时绑定邮箱和手机立即绑定

java中嵌套内部类是否自动继承外部类的超类?

java中嵌套内部类是否自动继承外部类的超类?

噜噜哒 2023-10-19 21:10:43
假设我有一个外部类 A,它嵌套内部类 B。A 是 C 的子类。那么 B 也是 C 的子类吗?由于 B 可以访问 A 的所有私有成员,因此它的超类的(公共和受保护的)成员,所以我认为 B 成为 C 的子类。我的思路对吗?非常感谢任何帮助。
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

这就是你所描述的:


class C {} 

class A extends C {

    static class B {}

}

作为 中的嵌套类A 并不构成B的子类C。对成员的访问并不是子类的定义特征。


假设您尝试将 类型的对象分配B给 类型的变量C。


C c1 = new A(); // OK -- A is a subclass of C

C c2 = new A.B(); // Not OK

如果B是 的子类C,则后者将是合法的赋值。但事实并非如此。


查看完整回答
反对 回复 2023-10-19
?
三国纷争

TA贡献1804条经验 获得超7个赞

我不这么认为。如果你想让 B 扩展 C,你可以明确地说:


class C {}


class A extends C {


    static class B extends C {

        //Todo...

    }

}

嵌套类 B 只是 A 的一个(静态)成员,就像它的任何其他成员一样。您可以在 B 中访问 C 的 public 和 protected 甚至封装访问方法和变量,因为 A 继承了 C 的这些成员。由于 B 是 A 的嵌套类,您可以访问 A 的(静态)成员,这些成员可以从其他类继承是否上课。


查看完整回答
反对 回复 2023-10-19
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信