对象的向上转型向下转型

Posted zhuobo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象的向上转型向下转型相关的知识,希望对你有一定的参考价值。

其实就是多态写法

1、向上转型,也就是创建一个子类对象,把他当做父类来看待,向上转型一定是安全的,但是一旦向上转型为父类对象,就不能调用子类原本特有的方法

父类引用指向子类对象

Parent p = new Children();

Animal a = new Dog();// 这个a不能调用Dog类特有的狗吃屎方法

2、向下转型,其实是一个还原的动作,也就是将父类对象还原为本来的子类对象

格式:

子类名称 对象名 = (子类名称)父类对象;

Animal animal = new Dog();// a dog
Dog dog = (Dog)animal;// 向下转型为原来的狗

// Cat cat = (Cat)animal;
// 这是错误写法
//本来人家是狗,向上转型为动物,你要强制把人家先下转型为猫,就会报错(类转换异常java.lang.classcastexpction),应该是一个还原的过程

3.如何知道一个父类的引用原来是什么子类,这样才可以安全的向下转型

if(animal instanceof Dog) {// 如果animal本来是一只狗(Dog类)
    Dog dog = (Dog)animal;
}
if(animal instanceof Cat) {// 如果animal本来是一只猫(Cat类)
    Cat cat = (Cat)animal;
}

以上是关于对象的向上转型向下转型的主要内容,如果未能解决你的问题,请参考以下文章

JAVA对象 向上转型upcasting,向下转型downcasting

java中对象的向上转型和向下转型

Java中的向上转型和向下转型

向上转型和向下转型

8.JAVA-向上转型向下转型

对象的向上转型向下转型