现在对于初中级的面试,有的时候经常会遇到面试官会问,方法重载(overload)和重写(override)有啥区别啊?虽然这个面试题狠low,但是本人还是在这把重载和重写的区别整理了下,需要的小伙伴拿走。
首先来解剖下重载(overload):
重载是针对于一个类内部的不同方法而言的,这些不同的方法,必须是具有相同的方法名,但是返回值或者方法的参数不同,重载的规则:
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序;
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
其次说下重写(override):
重写是针对于子类和父类而言,子类方法重写父类的方法,方法名、方法返回值、方法参数列表和参数类型必须一致,重写规则:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
重载(overload)和重写(override)是java多态性的两种不同实现方式,在实际的开发中也经常会遇到,也很实用。
相关推荐
主要总结了java中的重载和重写的区别,供大家理解参考,有问题可以补充
// 下面几个方法用来验证可以通过定义不同的参数类型和参数的数目进行方法重载。 public void fun(){ System.out.println("method fun in OverloadTest, no parameter"); } public void fun(float f) { System...
对Java中方法的重载和重写的具体描述,有利于区分方法的重载和重写
Java中重载和重写总结,基础知识,概念分清楚,补充基础知识
主要介绍了Java方法重载和重写原理区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
重载与重写的区别,详细描述了java中重载与重写的区别。
java 重载,重写以及继承,多态的区别
对java中重载和重写的概念做了详细的介绍和比较
本文主要介绍Java 的重载和重写,学习java的同学都知道Java的多态有多重要,这里给大家举例说明函数的重载和重写,希望能帮助有需要的小伙伴
主要介绍了实例分析java中重载与重写的区别,需要的朋友可以参考下
重载和重写--java
[Java]重载,重写以及继承,多态的区
JAVA重写和重载.pdf
主要介绍了浅谈Java中的重载,重写,多态,静态绑定、动态绑定,具有一定借鉴价值
重载,重写,覆盖,多态的深刻剖析,具体分析了重载,重写,覆盖,多态之间的区别
Java中重载与重写。
主要介绍了Java中继承、多态、重载和重写介绍,需要的朋友可以参考下
java中重载与重写的区别.pdf
JAVA中的方法重写与方法重载的区别,还算挺详细的
重写和被重写方法返回值必须相同 * 此方法错误 */ // public double getSides() { // return 3d; // } // end // begin /** * 4. 重写方法抛出的异常必须和被重写方法抛出异常一致,或者是其子类 * 详细见:...