对于初学者而言,概念往往很难理清楚。我根据我的理解来谈谈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开发者应该关注的编程趋势- 周排行
- 月排行
-   缓存技术:加速应用,提高用户体验
-   六个好用的在线代码编辑器,你选哪个?
-   C++简单String类的实现
-   适合Java开发者学习的Python入门教程
-   在软件开发中实施AI与敏捷管理的九点建议
-   快速提升 UI 设计效果的 6 个小技巧
-   如何将SAST融入DevSecOps流程中?
-   微服务架构:构建高灵活性的分布式系统
-   这 14 个 VSCode 插件,让你写代码如同神一般
-   C++性能优化指南:让你的程序飞起来!
-   缓存技术:加速应用,提高用户体验
-   分布式系统:常见陷阱和应对复杂性的...
-   大模型系列:提示词管理
-   最全的C++资源大全,纯干货!