内在的阶级延伸

在java中,假设我有以下类:

public class A{ protected class B{ } } 

我可以通过以下方式扩展内部类吗?

 public class C extends A{ protected class D extends B{ } } 

我想要做的是我有上面的C类,我需要在A的内部类中改变一些东西,所以我认为我需要扩展内部类来这样做,但我不确定如何做到这一点。

根据这个页面 ,你有正确的方法来扩展内部类。 关于它的一些提示可以在这里找到,在文章的中间(搜索“扩展”)。

如果这不起作用(我认为不会),则应该:

 public class C extends A{ protected class D extends AB{ } } 

好吧,它会,但是如果你在B之外有另一个名为B类呢?

编辑:不,它没有任何区别。 即使有另一个名为B类,它仍然需要AB 。 所以你的语法是正确的。

您可以这样做,但不要指望您的C类自动使用D类而不是A的内部B类。

每个内部类都可以独立地从实现inheritance。 因此,内部类不受外部类是否已经从实现inheritance的限制。

思考Java(第260页)