Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 内部类扩展_Java_Inheritance_Extends - Fatal编程技术网

Java 内部类扩展

Java 内部类扩展,java,inheritance,extends,Java,Inheritance,Extends,在java中,假设我有以下类: public class A{ protected class B{ } } 我可以通过执行以下操作来扩展内部类吗 public class C extends A{ protected class D extends B{ } } 我想做的是,我有上面的C类,我需要更改A的内部类中的某些内容,所以我想我需要扩展内部类来实现这一点,但我不确定具体怎么做。如果这样做不起作用(我认为不会),那么以下应该: public class C extend

在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 A.B{
  }
}
好吧,会的,但是如果在
A
之外有另一个名为
B
的类呢


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

根据,您找到了扩展内部类的正确方法。在文章的中间可以找到一些提示(搜索“扩展”)。

允许这样做,但是不要期望C类自动使用D类而不是A的B类。p> 每个内部类都可以独立地从实现继承。 因此,内部类不受外部类是否存在的限制 已从实现继承


---用Java思考

是的,你可以像那样扩展内部类。如果
D
static
,它是不起作用的,但它不是,它是这样的。这是继承外部/内部类数据结构的真正关键方面。是否有任何已知的模式来处理这个问题(泛型等)?我要说的是注入您想要使用的实际的B实例(在本例中为B或d)。