如何让子类覆盖父类的值,但使用父方法

时间:2013-02-20 21:19:57

标签: java inheritance override overwrite

如果之前已经发布过此道歉,我只会以相反的方式获得结果。

我希望能够做两件事:

  1. 在为子变量赋值时,引用子类中的父变量。
  2. 让成人类中引用此变量的方法使用子类值。这样,我可以有很多子类,但没有相同的方法重复代码。
  3. 这是我的意思的一个超级简单的伪示例:

    儿童班:

    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
        }
    }
    

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

此链接也可能有用。 why instance variable of super class is not overridden in sub class method