Java面向对象-多态

Java多态概念:
java面向对象的多态性特征是指允许不同类的对象对同一信息作出相应。多态性包括参数化多态性和包含多态性。动态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数的同名问题,在项目中经常用到

多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。

多态在调用可分为静态成员调用和非静态成员调用两种:
例:Animal cat= new cat();cat .method();这个方法,
如果method()是一个静态方法,请参考左边(即父类Animal)。
如果method()是非静态方法,请参考右边(即cat类)

多态对象相同的基本数据类型可进行自动类型转换
例:Animal cat1 = new cat();cat cat2 = (cat) cat1;
我们称Animal cat1 = new cat();为向上转型,cat cat2= (cat)cat1;为向下转型

例子:在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例。
在这里插入图片描述
例子分析:
定义了三个类,分别是 Human、Student 和 Teacher,Student和 Teacher类都继承自Human类。
obj 变量的类型为 Human,它既可以指向 Human类的实例,也可以指向 Student和 Teacher类的实例,
也就是说,父类的变量可以引用父类的实例,也可以引用子类的实例。
注意反过来是错误的,因为所有的学生都是人类,但不是所有的人类都是学生。

多态是指一个事物有不同的表现形式或形态。obj属于多态,因为obj既可以是学生还可以是老师

再比如“动物”,也有很多不同的表达或实现,动物既可以是猫,也可以是狗等,我们也可以说“动物”具备了多态性。

如何使用多态方式调用方法:
首先检查父类中是否有该方法,
如果没有,则编译错误;
如果有,则检查子类是否覆盖了该方法。
如果子类覆盖了该方法,就调用子类的方法,否则调用父类方法。

例子:
在这里插入图片描述
在这里插入图片描述
例子分析:
Master 类的 operate方法有两个参数,分别是 Human类型和 Word类型,因为是父类,所以可以将子类的实例传递给它,这样 Master 类就不需要多个方法来给不同的动物喂食。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值