内在的阶级延伸

时间:2012-02-26 23:01:43

标签: java inheritance extends

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

public class A{
  protected class B{
  }
}

我可以通过执行以下操作来扩展内部类吗?

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

我想要做的是我有上面的C类,我需要在A的内部类中进行更改,所以我认为我需要扩展内部类来这样做,但我不确定到底是怎么回事那样做。

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

  

每个内部类都可以独立地从实现继承。   因此,内部类不受外部类是否   已经从实现中继承。

--- Java思维页面260