码迷,mamicode.com
首页 > 其他好文 > 详细

对象的向上转型、向下转型

时间:2019-03-28 00:35:26      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:转换   new   方法   动物   pre   anim   写法   animal   如何   

其实就是多态写法

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;
}

对象的向上转型、向下转型

标签:转换   new   方法   动物   pre   anim   写法   animal   如何   

原文地址:https://www.cnblogs.com/zhuobo/p/10611874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!