idea重写接口没有@override_温习java中重载(overload)、重写(override)概念

前言:18年面试碰见了一道很简单的题:重载的英文单词是哪个,重写的英文单词是哪个?如此简单的问题,没选出来,因为我把单词给忘了,概念我到是背了一堆,还没施展,就已经被人家拒之千里之外了。(此事不想再提)

3c2ba11dce06aedec517551972f06db7.gif

痛苦

今天在写这篇文章之前,我发现了我还是没有记住单词,这好像是我的槛,跨不过去了,故特意写了这篇文章,大家也可以收藏下,方便自己在地铁、公交上看。

方法的重载(overload)和重写(override)都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则),还有构造器是不能被继承的,但是它可以被重写。

52582ee1e4ec7d3667d38bbc401be90f.png

重载

9102774b07f07906f8f3812b23d7cca7.png

重写

简短的总结下:

重载(overload)

  1. 必须是同一个类;
  2. 方法名(也可以叫函数)一样;
  3. 参数类型不一样或参数数量不一样。

重写(override)

  1. 方法名相同,参数类型相同;
  2. 子类返回类型小于等于父类方法返回类型;
  3. 子类抛出异常小于等于父类方法抛出异常;
  4. 子类访问权限大于等于父类方法访问权限。

构造器:不能被继承、但可以被重写。

概念这个东西没法说只能死记硬背了,俗话说:书读百遍其义自见;看的遍数多了也就自然而然地记住了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值