java 向下转型_Java_向下转型

对象一旦向上转型为父类就无法调用子类的特有方法

解决方法就是用对象的向下转型

向上转型过程已经把Teacher当做父类People使用所以如果在Teacher类里面写一个特有方法我们是无法用 http://Xiaoming.XXX();进行调用

所以向下转型为原型:

对象向下转型是一个【还原】的动作

格式:子类名称 对象名 =(子类名称)父亲对象;

含义:将父类对象还原成本来的子类对象

例子如下

父类:

子类:

我们无法用Xiaoming.music();调用Teacher的特有方法

向下转型

如果把父类换成Animal 子类换成Cat更好理解

父类中有abstract方法eat;

子类有重写的abstract方法eat();和特有方法catchMouse()

向上转型为

Animal animal = new Cat();

Animal.eat()可以成功调用而Animal.catchMouse()不能调用

这时候就需要向下转型

Cat cat=(Cat)animal,将创建的属于Animal类的对象animal转为Cat类的cat对象

就可以用cat.catchMouse();调用法法catchMouse了

向下转型是有危险的,向下转型为什么说是还原呢?其实就是你是由什么转过来的你就应该转回什么,比如cat→animal,那么你就应该由对象animal→cat,假如还有一个animal的子类叫dog,你如果由animal→dog那么就是错误转型,就像我给了你亿元美金,你给回我的是一RMB那么就不是还原了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值