java向上、向下转型怎样理解?有什么用?instanceof的作用是什么?通俗举例说明一下谢谢
展开全部
java中的一些概念都可以在现实世界中找到。
现实世界中:动物是一类,猫是一类,狗是一类,然而猫和狗都是动物。这个很好理解吧。
java版:class 动物,class 猫 extends 动物,class 狗 extends 动物。定义了动物类,猫类继承动物,狗类继承动物。
现实世界中我们看到一只猫,我们的脑子里都会想到,哦这是一只猫,当你想到这只猫也是一个动物的时候,这个就是向上转型。猫类型自动向上转型成动物了,这个是合理的。
向下转型也就是强制转换类型,有个人抱了一只狗,问你这是什么动物呢?你说是只猫。这个就是向下转型,将动物转成猫。但这里却会有错误,因为明明是狗,你却说是猫。
这个时候instancceof关键词的作用就来了,狗 instancceof 猫 就是判断这个狗是不是猫类。结果当然不是猫类了,强转失败。
现实世界中:动物是一类,猫是一类,狗是一类,然而猫和狗都是动物。这个很好理解吧。
java版:class 动物,class 猫 extends 动物,class 狗 extends 动物。定义了动物类,猫类继承动物,狗类继承动物。
现实世界中我们看到一只猫,我们的脑子里都会想到,哦这是一只猫,当你想到这只猫也是一个动物的时候,这个就是向上转型。猫类型自动向上转型成动物了,这个是合理的。
向下转型也就是强制转换类型,有个人抱了一只狗,问你这是什么动物呢?你说是只猫。这个就是向下转型,将动物转成猫。但这里却会有错误,因为明明是狗,你却说是猫。
这个时候instancceof关键词的作用就来了,狗 instancceof 猫 就是判断这个狗是不是猫类。结果当然不是猫类了,强转失败。
追问
明白了,真的通俗易懂
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询