Java初级之多态

目录

一、向上转型

二、动态绑定

三、重写

四、向下转型

五、多态

一、向上转型

1.向上转型:实际就是创建一个子类对象,将其当成父类对象使用。

2.直接赋值

3.方法传参

4.方法返回

二、动态绑定

提问:为什么在Test类中,animal引用的eat()方法是子类的eat()方法,而不是父类的eat()方法?
答:我们观察代码发现:子类中的eat()方法和父类中的eat()方法构成了重写(①方法名相同②参数列表相同③返回值类型相同)。程序在编译的时候,确实调用的是父类的eat()方法,当代码运行的时候,通过父类的引用,调用了父类和子类重写的那个方法,结果实际调用了子类的eat()方法,此时我们把这个情况叫做动态绑定。

理论上来说确实应该调用的是父类的eat(),但是在运行的时候,把子类方法的地址赋值给了父类,所以通过父类地址一找,找到的就是子类的方法。

三、重写

1.什么是重写?(可以参考上图的重写形式)

(1).方法名相同。

(2).参数列表相同(个数、类型、顺序)。

(3).返回值类型相同。

2.重写的注意事项

(1).重写的方法不能是静态方法。

(2).被final、private修饰的方法不能被重写。

(3).如果子类要重写父类的方法,子类方法的修饰权限要大于父类。

(4).当想要构成重写的两个方法的返回值类型构成父子关系也是重写。

四、向下转型

向下转型需要强制类型转换,并且不是所有的向下转型都是可以成功的。

成功转型

失败转型

五、多态

在func方法,animal引用的eat()方法,我们发现不同的对象调用同一个方法表现出的结果不同,这种现象我们称为多态。

那么到现在为止,继承和多态的有关知识小编已经上传完了,有问题的宝子可以在下面留言,小编看到后一定会第一时间为你做出解答,大家也可以在评论区下面发表你的独特见解,我们一起探讨,希望这两篇关于继承和多态的博客能够对你Java的学习起到帮助,接下来小编也会继续上传Java学习方面的其他内容,期待得到大家的反馈♥♥♥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值