class A{
public int x=10;
}
public class B extends A{
public int x=100;
public static void main(String[] args){
B t1 = new B();
System.out.println(t1.x);
A t2=t1;
System.out.println(t2.x);
}
}output:
100
10对于上面的程序,我的理解为向上转型即父的引用指向了子,事实的空间数据是子开辟的,所以t2.x应该是100才对,实际却不是,看来我理解有误。不知道该怎么理解了
public int x=10;
}
public class B extends A{
public int x=100;
public static void main(String[] args){
B t1 = new B();
System.out.println(t1.x);
A t2=t1;
System.out.println(t2.x);
}
}output:
100
10对于上面的程序,我的理解为向上转型即父的引用指向了子,事实的空间数据是子开辟的,所以t2.x应该是100才对,实际却不是,看来我理解有误。不知道该怎么理解了
那在向上转型后怎么知道是父类的int,难道说 A t2=t1 不仅仅是将引用指向子类开辟的那片空间这么简单?