一句话总结重构、重载、重写

 

重构:在不改变软件可观测行为的前提下改善其内部结构。
重载:1同(方法名)1不同(方法的签名个数和类型)。
重写:2同(方法名和签名)1小(异常)1大(访问修饰符)。
 
Java技术交流、学习、讨论,QQ群:67844123

转载于:https://www.cnblogs.com/youngto/archive/2012/04/21/2460965.html

### Java 方法重构重写重载的概念及用法 #### 一、方法重载 (Overloading) 方法重载指的是在一个类中定义多个同名的方法,但它们的参数列表(数量、类型或顺序)必须有所不同。这种方法增强了代码的灵活性,使开发人员可以根据不同的需求调用适合的方法版本。 - **特点**: - 同一个类内的方法。 - 参数的数量、类型或顺序不同。 - 返回值类型可以不同,但这不是判断重载的主要依据[^2]。 - **示例**: ```java public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } ``` 在这个例子中,`add` 方法被重载了两次,一次处理整数相加,另一次处理浮点数相加[^4]。 --- #### 二、方法重写 (Overriding) 方法重写发生在子类继承父类的情况下,子类提供了与父类方法名称相同、参数列表相同的实现。这是面向对象编程中多态性的体现之一。 - **特点**: - 发生在父子类之间。 - 方法签名完全一致(包括方法名、参数列表以及返回值类型)[^1]。 - 子类方法不能降低访问权限[^2]。 - 如果父类方法声明为 `final` 或 `private`,则无法被重写[^3]。 - **示例**: ```java class Parent { public void greet() { System.out.println("Hello from Parent"); } } class Child extends Parent { @Override public void greet() { System.out.println("Hello from Child"); } } ``` 在此案例中,`Child` 类重写了 `Parent` 的 `greet()` 方法[^3]。 --- #### 三、方法重构 (Refactoring) 方法重构是一种改进现有代码的过程,目的是提高代码质量、可读性和可维护性,同时保持原有功能不变。这是一种良好的编码习惯,有助于长期项目的可持续发展。 - **目标**: - 提高代码清晰度。 - 减少冗余代码。 - 改善性能或结构。 - **常见形式**: - 修改变量或方法名称使其更具描述性。 - 将复杂逻辑拆分为更小的模块。 - 使用设计模式优化架构。 - **注意**:重构不会影响程序对外部的表现行为[^5]。 --- #### 四、三者的区别总结 | 特性 | 方法重载 | 方法重写 | 方法重构 | |---------------------|------------------------------|--------------------------------|----------------------------| | 所属关系 | 同一类内 | 父类与子类之间 | 单独作用于某段代码 | | 是否改变方法签名 | 是 | 否 | 可能涉及局部改动 | | 对外可见性 | 影响当前类 | 影响整个继承体系 | 不影响外部使用者感知 | | 主要目的 | 增强接口易用性 | 实现多态 | 提升代码质量和可维护性 | --- ### 结论 掌握方法重载重写重构的核心概念及其应用场景,可以帮助开发者写出更加优雅、高效且易于维护的代码。每种技术都有其独特的适用范围,在实际项目中需灵活运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值