Gur*_*nda 1 java language-agnostic oop inheritance
A
a1 a2 a3*
Run Code Online (Sandbox Code Playgroud)
在这个例子中,A是SUPER类,它有a1,a2作为子类.
假设a3被添加到A,那么我希望A从a3获得一个特征(它应该是可选的).a3的这个额外功能应该转到A(超类),并且所有其他孩子(a1,a2)也应该获得此功能.
在Java或Java设计中是否可能?
不.这不受Java支持.注意
class A1 extends A
Run Code Online (Sandbox Code Playgroud)
不应该被解释为"我正在向A添加东西".它应该被解释为"这是一个新的类,作为这个类的基础,我将使用A".
如果你的某些方面a1,a2而a3应该是可访问的A,因此a1,a2和a3我建议你做这样的事情
class A {
protected A1 a1 = new A1();
protected A2 a2 = new A2();
protected A3 a3 = new A3();
...
}
Run Code Online (Sandbox Code Playgroud)
你也可以做A1,A2和A3非静态内部类的他们不得不封装的实例的引用A.
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |