0

抱歉,如果之前已发布过此内容,我只会得到覆盖相反方式的结果。

我希望能够做两件事:

  1. 在为子变量赋值时,从子类引用父变量。
  2. 让引用此变量的成人类中的方法使用子类值。这样,我可以有很多子类,但方法的重复代码不一样。

这是我的意思的一个超级简单的伪示例:

子班:

public class ChildClass extends AdultClass {
    static int a=super.a+1;
}

成人班:

public class AdultClass {
    static int a=5;
    static public int getA() {
        return a;
    }
}

使用 ChildClass 对象的类:

public class ClientClass {
    public static void main(String[] args) {
        ChildClass.a <-I want this to =6
        ChildClass.getA() <-I want this to return 6
    }
}
4

2 回答 2

2

如果您想利用 Java 的多态性,则必须涉及类实例。静态成员不能显示多态行为,您显然需要AdultClass.getA().

于 2013-02-20T21:25:05.667 回答
0

然后简单地使成员成为受保护的成员,并将其用作孩子自己的成员。

这个链接也可能有用。 为什么超类的实例变量在子类方法中没有被覆盖

于 2013-02-20T21:35:39.697 回答