2个回答
展开全部
这个不会消失,但是父类看不到子类的属性,也就是说调用不到的。
但是如果你把 个由子类转换来的父类引用交给一个子类时,属性就可以调用了。
如:
// Child有一个父类没有的属性x
Child c = new Child();
Parent p = c;
System.out.println(p.x); //这里在编译时会报错,因为对Parent类来说,是没有x这个属性的。
Child cc = p;
System.out.println(cc.x); // 转换回来后,可以正常调用并且得到值。
关于地址的问题。因为赋值操作都是把地址交给不同的变量,只是变量的指向变化了,而地址是没有发生改变的。
但是如果你把 个由子类转换来的父类引用交给一个子类时,属性就可以调用了。
如:
// Child有一个父类没有的属性x
Child c = new Child();
Parent p = c;
System.out.println(p.x); //这里在编译时会报错,因为对Parent类来说,是没有x这个属性的。
Child cc = p;
System.out.println(cc.x); // 转换回来后,可以正常调用并且得到值。
关于地址的问题。因为赋值操作都是把地址交给不同的变量,只是变量的指向变化了,而地址是没有发生改变的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询