对象的多态

对象的多态

多态是指对象的多态,而不是类的多态。是指多种状态,而不是指多种形态

格式:

父类名称 对象名 = new 子类名称();或者 接口名称 对象名 = new 实现类名称();

访问成员变量的两种方式:

  1. 直接通过对象名称访问成员变量;看等号左边是谁,优先用谁,没有则向上找。
  2. 间接通过成员方法访问成员变量,看该方法属于谁,优先用谁,没有则向上找。

访问成员方法的规则:

  1. 看new的是谁,就优先用谁,没有则向上找
  2. 口诀:编译看左边,运行看右边

多态的好处

假如有以下关系:

在这里插入图片描述

如果不用多态,只用子类,那么写法是:

Teacher one = new Teacher():
one.work(); //讲课
Assistant two = new Assistant();
two.work(); //辅导

现在唯一要做的事情,就是调用work方法,其他的功能不关心。
如果使用多态的写法。对比一下:

Employee one = new Teacher();
one.work(); //讲课
Employee two = new Assistant();
two.work();//辅导

好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化。

多态的向上转型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pG5Ded2Z-1623746689268)(D:\Blog\pictures\image-20210615150710313.png)]

对象的向上转型,其实就是多态写法:

  • 格式:

    父类名称 对象名 = new子类名称():
    Animal animal = new Cat():

  • 含义:

    右侧创建一个子类对象,把它当做父类来看待使用。

    创建了一只猫,当做动物看待,没问题

  • 注意事项:

    向上转一定是安全的。 从小范围转向了大范围,从小范围的猫,向上转换成为更大范围的动物。

    类似于:
    double num = 100; //正确,int --> double,自动类型转换。

多态的向下转型

在这里插入图片描述
对象的向下转型,其实是一个[还原]的动作。

  • 格式:

    子类名称对象名= (子类名称)父类对象:

  • 含义:

    将父类对象,[还原] 成为本来的子类对象

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值