SUPER类应从其SUBCLASS中获取函数和属性.在Java中有可能吗?

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设计中是否可能?

aio*_*obe 7

不.这不受Java支持.注意

class A1 extends A
Run Code Online (Sandbox Code Playgroud)

不应该被解释为"我正在向A添加东西".它应该被解释为"这是一个新的类,作为这个类的基础,我将使用A".


如果你的某些方面a1,a2a3应该是可访问的A,因此a1,a2a3我建议你做这样的事情

class A {
    protected A1 a1 = new A1();
    protected A2 a2 = new A2();
    protected A3 a3 = new A3();

    ...
}
Run Code Online (Sandbox Code Playgroud)

你也可以做A1,A2A3非静态内部类的他们不得不封装的实例的引用A.