对于初学者而言,概念往往很难理清楚。我根据我的理解来谈谈Java中重写方法与重载方法的区别。
重写
Java 中重写又叫覆盖,主要是指继承(extends)父类或者实现(implements)接口时将父类或者接口中已经存在的方法进行重新定义。重写的方法在父类或者接口中必须存在。
注意:后文的重写方法与覆盖方法同义
覆盖父类或者接口方法的规则
重写方法的方法名必须与父类或接口方法名相同,否则是定义新方法
重写方法的方法参数必须与父类或接口方法参数相同,否则是重载方法
重写方法的返回类型必须与父类或接口方法返回类型相同,否则是重载方法
重写方法的访问修饰符必须比父类或者接口方法的访问修饰符大(public>protected>default>private),否则运行时可能出现异常
重写方法不能抛出父类中没有的检查型异常
重写方法不能抛出父类抛出异常的父异常
父类或者接口中需要被重写的方法不能被定义为 private,私有方法对子类不可见,在接口中定义私有方法没有意义
静态方法不能被重写为非静态的方法(编译不通过)
重载
重载方法具有相同的方法名,不同的方法参数(参数个数,参数类型),重载在 Java 中很常见。例如 jar 包中的 String 类,它的构造函数就有很多的重载方法。
重载方法的规则
重载方法的方法名必须相同
重载方法的方法参数必须不同,方法参数可以是不同的参数个数,参数类型,参数顺序(参数类型必须不同)
不能通过访问权限,返回类型,抛出的异常类型进行方法重载
注意:通常,我们在重写方法前面加上 @Override ,它表示这是一个重写方法,编译器会自动去父类或者接口中帮我们检查重写方法是否符合相关规则。
注意:对于重载方法,我们在方法前面加上 @Overload ,该注解没有实际含义,仅表示该方法是一个重载方法
结语
重写(覆盖)方法的意义
相信读者朋友都还记得 Java 语言的三大特性:封装,继承,多态,而方法的重写就很好的诠释了 Java 继承性。
重载方法的意义
重载方法使用相同的方法名,需要通过不同的方法参数来区分,这是 Java 多态性的一种体现。
Java重写与重载(区别与用途)
发表于:2017-08-08
作者:kyyee
来源:
 相关文章
前端到底是“技术深度”重要还是“技... 悟透一个小窍门,你就能举一反三掌握... 聊聊架构设计流程:设计备选方案 Java中的并发编程模型及其应对策略 掌握Java并发编程,避免无处不在的竞态条件 2024年,五个Java开发者应该关注的编程趋势- 周排行
- 月排行
-   开发者必备的程序调试利器,来找到适...
-   看大牛是如何阅读JDK源码,涨涨见识
-   15年软件架构师经验总结:在ML领域,...
-   性能工程成熟度模型
-   一些Java的知识点扫盲
-   如何使用 Python 进行数据科学
-   学C语言的看过来,最完整进制转换、整...
-   GitLab vs Jenkins:哪个是最好的 CI/CD 工具?
-   谈谈Java中遍历Map的几种方法
-   为什么需要软件详细设计?
-   2024年不容错过的十大开发框架
-   IEEE计算机协会预测2019年十大顶级技术趋势
-   通过这个技术,浏览器可以运行Node.js...
-   好代码的五个特质
