Java:父类对象为啥能转换成子类对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:父类对象为啥能转换成子类对象相关的知识,希望对你有一定的参考价值。

参考技术A 不是父类的对象,而是父类的引用,比如。。。
Animal
a=new
Dog();
这个a就是父类型的引用,但实际上是Dog类型,所以可以强制转为Dog类型。。。
而如何判断a是否是dog类型呢,可以使用instanceOf关键字,写法如下:
if(a
instanceOf
Dog)
Dog
d=(Dog)a;
参考技术B 是的,java
可以自动子类转换成父类(称为向上转换),子类独有的方法和属性会隐藏。但是还是存在的,例如
a
a
=
new
b();
b
b
=
(b)
a;
//强制转换
这时仍能使用而调用b的fun3();

java中父类可不可以转为子类

父类对象无法转化子类对象。 子类对象有父类对象不具备的属性、初始化需要用到的参数、内存空间。所以父类对象无法转换为子类对象。 补充: Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引 参考技术A 不可以,只有子类转为父类

以上是关于Java:父类对象为啥能转换成子类对象的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何对父类对象强制转换子类对象的引用

java中的String类型的对象为啥可以自动转换成Object类型的?而Object却要强制转换成String类型的

java中父类可不可以转为子类

Java 如何实现父类转换为子类的效果?

在java 中子类对象为啥不能比父类对象有更严格的访问权限?

Java 父类子类转换的问题