Override和Overload(重写和重载)

多态(POLYMORPHISM),重写(OVERRIDE),重载(OVERLOAD)


这几个概念还真是容易混淆。多态(polymorphism),重写(Override),重载(overload)
也有把override译为重载的。
关于override和overload的翻译,好像不是很统一。
更多的应该是:
重写(override)和重载(overload)


重写(也可以译为overwrite)是基于子类对于父类的方法来说的,而重载呢,则是基于本身这个类里面的方法来说的。

一个类可以当继承另外一个类的时候,他就拥有了其父类所有的属性和方法,这个时候,他的一个实例同时也是父类的实例,因为他是一个父类,就如,Dog类继承了Animal类以后,d 这个Dog同时也是Animal这个类一样的。
如果说Animal类里面有一个方法是run(),这个run方法比较简单,只是简单得形容一下一般的动物是怎么run();显然Dog类对于这个写法是不满意的,要对其进行重新描述,于是就重新写了一个run方法,形容一只狗跑的时候是什么样子的。这样这个run方法就更适合于Dog类。那么这个run方法就是对Animal类里面run的重写(override)
然而,这种run还是不能满足要求,狗在run的时候可能是有状态的如果它是因为看见一只老鼠才run的呢?于是需要写一个同样的run将这种状况包含进去,那么我们就使用这样一种技术叫做重载(Overload),写了一个方法run(Mouse m)告诉别人当一只狗在看见一只老鼠时是怎么跑的,这就是重写。

那么这里面有没有什么需要注意的地方呢?
答案是有的:
1、重写是override 而重载是overload。两者写法不一样
2、override是针对父类同名同方法签名的方法写的,而overload是针对一个类里面同方法名,不同的方法签名的方法来写的。
3、override的外形和父类完全一样只是大括号里面的实现不一样,而overload除了方法名一样其他的不能都完全一样。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值