Java多态性以及上下转型

问:老虎是动物吗?那么动物是老虎吗?

答:老虎当然是动物,动物不一定是老虎。 [废话]

 

现在你明白了,原来是这样:

 

      向上转型:把一个具体的物种的实例归为总的动物类。即: 动物 动物实例 = new 具体物种();

      向下转型:把一个总的动物实例归为一个具体的物种。

 

================================================================

用代码来说事吧:

------------------------------------------------------------------------------

动物类:

 

------------------------------------------------------------------------------

老虎类 继承  动物类

------------------------------------------------------------------------------

狮子类 继承 动物类

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

广告1:向上转型总是能成功的。只给一句代码

 

           Animal animal = new Tiger(); 

 

           向上转型:upcasting - 父类引用接受子类实例 [不会报错 + 不用强转]  /

 

问题1:我们可以把一个动物类的实例交给老虎类吗? [直接向下转型]

 

           Tiger tiger = new Animal(); //转型能成功吗?

 

           -------------哈哈,你猜着了吗? 答案是:不会成功。

 

           这是为什么呢?

 

问题2:既然我们可以用动物类接收一个老虎类实例,那么能把这个接收了老虎类实例的动物类引用再转成狮子类吗?

问题3:那我们如何才能把动物类引用赋给具体某一个物种呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值