JAVA中如何对父类对象强制转换子类对象的引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中如何对父类对象强制转换子类对象的引用相关的知识,希望对你有一定的参考价值。
父类对象无法转化子类对象。子类对象有父类对象不具备的属性、初始化需要用到的参数、内存空间。所以父类对象无法转换为子类对象。
补充:
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。比如说男孩和女孩都人,但要是人都是男孩就不对的。所以说子类可以转父类,但父类不能转子类。 参考技术A 比如Person类是父类,Child类是子类,如果定义了
Person person=new Person();
Child child=new Child();
要让person指向子类Child,可以使用强制装换,如下
person=(Person)child
而子类指向父类则可以不用装换
child=(Child)person是不可以的本回答被提问者采纳 参考技术B 一楼说反了。。。。
Parent p =new Child();
应该是Child child=(Child)p; 参考技术C 直接person=(person)child 参考技术D 1楼的朋友你好像说反了~
父类对象是不是可以强制转换成子类的对象?为啥?
父类对象不能强制转化成子类对象,java中用类来实例化对象主要是因为类中含有这类实例中的共有属性,而类中集合了这些属性;父类与子类,子类是父类的扩展,子类比父类更具体,意思也就是说,子类比父类所拥有的方法属性更多,更具体,但子类中又包含有父类中的全部属性方法,所以当子类对象强制转化为父类对象是时允许的,因为子类对象中含有与父类对象相同的属性,但是当父类对象强制转化成子类对象时就不可能了。明白了吗?? 参考技术A 实际上,父类对象是不可以强制转化成子类的对象的。只有子类的对象向上转型成父类对象时,这种子类转化过来的父类对象才可以强制转型成子类对象(注意该对象仍是子类的对象)。如
A为父类,B为子类。
A
a
=
new
A();
B
b
=
(B)a;//这里就会报错,因为该对象并不能强制转型为子类对象。
但下面这种情况是正确的:
B
b
=
new
B();A
a
=
(A)b;B
c
=
(B)a;本回答被提问者采纳 参考技术B 没有父
何来子
有强制转换
那也是表面现象
实际来说怎么转换他还是子类
只是当初在开发编程软件是为了
某些
必要而
加进去的
但他还是子类
以上是关于JAVA中如何对父类对象强制转换子类对象的引用的主要内容,如果未能解决你的问题,请参考以下文章