聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 第四十讲 向上转型和强制类型转换

第四十讲 向上转型和强制类型转换

时间:2023-01-19 03:40:25    下载该word文档

有时候需要把父类对象指向子类对象,有时候需要把父类对象转换成子类对象。例如我们可以说某一只狗是一只动物,还可以说这只动物是一条狗,但前提是我们要知道狗肯定是动物,而那只动物必须是一只狗。下面介绍如何把父类指向子类对象,如何把子类对喜爱那个强制转换成子类对象。
1、父类引用指向子类对象
正常情况下,我们会定义某个类的对象引用,然后使用new实例化一个对象,然后把这个引用指向该实例。例如:
Dogdog=newDog(;假设DogAnimal的子类,也可以写下面的代码:
Animalanimal=newDog(;Animalanimal定义了一个Animal对象引用,newDog(实例化了一只狗,然后animal指向了这只狗。这是允许的,就像我们指着一只狗,然后说它是动物,它确实是动物。
还可以写成下面的形式:
Animalanimal=dog;意思是把animal引用指向dog引用指向的实例。


这就是向上转型,不仅仅是父类可以指向子类的对象,只要是祖先类都可以指向子类的实例。典型情况,Object是所有类的祖先类,所以Object类型的对象引用可以指向任何对象。例如下面的代码:
Objecto=newDog(;把父类引用指向子类对象的好处是什么呢?自己可以思考一下,后面的多态性应用中详细介绍。
另外,类似的用法还有:
某个方法的定义如下:
publicvoidsetValue(Objecto{
this.value=o;
}这个方法的参数是Object类型,返回值类型是Object。因为参数类型是Object,所以在调用这个方法的时候我们可以给它传递任何类型的参数,包括上面的Dog对象,只要是它的子孙类就可以了。
再看下面的方法:
publicObjectgetValue({
  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服