类和对象浅谈(3)

20 篇文章 0 订阅

我们之前写了封装和继承(类和对象的三大特性中的两种),今天我来说说三大特性中的第三种:多态(polymorphism) ,什么叫多态?专业术语有点绕口,先用自己的话描述一下就是一个老祖宗下面有好多子女,然后这个这些子女又好多子女 依次往下 无休无止,虽然繁衍出了很多新人,但是却有着相同血脉,这就是生活中典型的多态应用(有点点偏颇,不正之处望大神赐教),而java中的老祖宗就是Object类,所有的类都继承了Object类。专业的多态解释:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
多态分两种:
(1) 编译时多态:编译时动态重载(overload);
(2) 运行时多态:指一个对象可以具有多个类型,方法的覆盖(override)
这样对于对象而言分为:
理解运行时多态:
Car c = new Bus();
Car编译时类型 编译时检查变量类型是否存在,是否有调用的方法。
Bus运行时类型 实际运行是访问heap中的对象,调用实际的方法。
运行时多态是由运行时类型决定的
编译时多态是由编译时类型决定的
可能大家对重载(overload)和重写(override)还很模糊 甚至以为他俩是一回事,其实不然,据我自己的理解重载是根据参数的类型和个数区别的,而重写就是继承父类中的方法,然后根据当前类的具体实现功能重新把原来父类中的方法重新实现,所以现在看重载和重写根本就不搭边,别被外表迷惑了双眼哦。。。
多态是有前提的 这个我就不写代码了 ,先理解,然后后面会用得很多的:
1, 要有继承
2,要有重写(override)
3,要有父类指向子类的应用 太绕了吧 其实就这样(Car c = new Bus(); )前提是Bus继承了Car。
所以我们前面说的封装,继承都是为多态打基础的,然而多态的实现是需要继承,借口去实现的,在下一篇中我会把抽象类(abstract)和接口(interface)好好聊聊,大神们,今天多态没有举代码实例,并不代表他不重要 ,他是java中的精髓,我们时刻都会用到它 只不过没发现而已。。哈哈 不扯淡了 今天就扯到这

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值