`

java重载和重写

    博客分类:
  • java
阅读更多

  现在对于初中级的面试,有的时候经常会遇到面试官会问,方法重载(overload)和重写(override)有啥区别啊?虽然这个面试题狠low,但是本人还是在这把重载和重写的区别整理了下,需要的小伙伴拿走。

  首先来解剖下重载(overload):

  重载是针对于一个类内部的不同方法而言的,这些不同的方法,必须是具有相同的方法名,但是返回值或者方法的参数不同,重载的规则:

  1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序;

  2、不能通过访问权限、返回类型、抛出的异常进行重载;

  3、方法的异常类型和数目不会对重载造成影响;

  4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果

  其次说下重写(override):

  重写是针对于子类和父类而言,子类方法重写父类的方法,方法名、方法返回值、方法参数列表和参数类型必须一致,重写规则:

  1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。

  2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。

  3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)

  4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。

  重载(overload)和重写(override)是java多态性的两种不同实现方式,在实际的开发中也经常会遇到,也很实用。

2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics