调用从超类

时间:2017-06-19 06:51:44

标签: java casting subclass extends superclass

class X {              //Super class
    int a=10;
    public void data() {
        int b=10;
        System.out.println(b);
    }
}

class Y extends X {    //Subclass
    int a=20;
    public void data() {
        int b=20;
        System.out.println(b);
    }
}



public class Casting {
    public static void main(String[] args) {
        X x = new Y();
        System.out.println(x.a);   //Prints a=10 : Value of superclass
        x.data();                  //Prints b=20 : Value of subclass
    }
}

我知道这与向上推广向下转发有关。但在这种情况下,两个值不应该属于同一类。

修改 固定它! 结果,

  

X x = new Y();

执行

x 保存其字段(变量)的原始值,但保留在子类中重写的任何方法的值。

因此,实例 x 成立:

  

A = 10

     

public void data(){

     

int b = 20;

     

System.put.println(B);

     

}

0 个答案:

没有答案