Java重写与重载(区别与用途)
作者:kyyee 发布时间:[ 2017/6/29 11:11:44 ] 推荐标签:测试开发技术 Java 参数
对于初学者而言,概念往往很难理清楚。我根据我的理解来谈谈Java中重写方法与重载方法的区别。
重写
Java 中重写又叫覆盖,主要是指继承(extends)父类或者实现(implements)接口时将父类或者接口中已经存在的方法进行重新定义。重写的方法在父类或者接口中必须存在。
注意:后文的重写方法与覆盖方法同义
覆盖父类或者接口方法的规则
重写方法的方法名必须与父类或接口方法名相同,否则是定义新方法
重写方法的方法参数必须与父类或接口方法参数相同,否则是重载方法
重写方法的返回类型必须与父类或接口方法返回类型相同,否则是重载方法
重写方法的访问修饰符必须比父类或者接口方法的访问修饰符大(public>protected>default>private),否则运行时可能出现异常
重写方法不能抛出父类中没有的检查型异常
重写方法不能抛出父类抛出异常的父异常
父类或者接口中需要被重写的方法不能被定义为 private,私有方法对子类不可见,在接口中定义私有方法没有意义
静态方法不能被重写为非静态的方法(编译不通过)
重载
重载方法具有相同的方法名,不同的方法参数(参数个数,参数类型),重载在 Java 中很常见。例如 jar 包中的 String 类,它的构造函数有很多的重载方法。
重载方法的规则
重载方法的方法名必须相同
重载方法的方法参数必须不同,方法参数可以是不同的参数个数,参数类型,参数顺序(参数类型必须不同)
不能通过访问权限,返回类型,抛出的异常类型进行方法重载
注意:通常,我们在重写方法前面加上 @Override ,它表示这是一个重写方法,编译器会自动去父类或者接口中帮我们检查重写方法是否符合相关规则。
注意:对于重载方法,我们在方法前面加上 @Overload ,该注解没有实际含义,仅表示该方法是一个重载方法
结语
重写(覆盖)方法的意义
相信读者朋友都还记得 Java 语言的三大特性:封装,继承,多态,而方法的重写很好的诠释了 Java 继承性。
重载方法的意义
重载方法使用相同的方法名,需要通过不同的方法参数来区分,这是 Java 多态性的一种体现。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11