多态理解,怎么理解子类对象强制转换父类对象?不是只有子类可以赋值给父类引用吗,那么以下代码如何理解
如下代码应该如何理解:Personp=(Person)o;其中o是是Objecto。标题错了,应该是父类对象强制转换成子类对象...
如下代码应该如何理解:
Person p = (Person ) o;
其中 o 是是Object o。
标题错了,应该是父类对象强制转换成子类对象 展开
Person p = (Person ) o;
其中 o 是是Object o。
标题错了,应该是父类对象强制转换成子类对象 展开
1个回答
展开全部
让父类(接口)引用指向子类对象(是自动类型转换), 从而调用子类对象的方法,实现多态性
而把父类对象要赋值给子类对象,需要进行强制类型转换,跟多态性无关。
父类对象要赋值给子类对象,如果不进行强制类型转换,编译会报错。
你写出的代码就是强制类型转换,与多态性无关
而把父类对象要赋值给子类对象,需要进行强制类型转换,跟多态性无关。
父类对象要赋值给子类对象,如果不进行强制类型转换,编译会报错。
你写出的代码就是强制类型转换,与多态性无关
追问
谢谢你的回答。
找到了一个更好的解释,在此贴给所有可能有相关困惑的网友:
"父类不能强制转换成子类~~!!!!
强制转换子类的情况 是使用父类的引用 引用了子类对象的实例 这个对象是实例的实例而不是父类的实例 这个时候才能用强制转换 否则不可以"
via 百度ID为“没有响应m2”
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询