Java重写与重载:方法的‘改头换面’与‘改头换面’,必分清

Java中方法重载与重写是重要特性,初学者易混淆,核心区别如下: **方法重载(Overload)**:同一类中,方法名相同但参数列表不同(类型、数量或顺序),返回值、修饰符等可不同。目的是同一类中提供多参数处理方式(如计算器add方法支持不同参数相加),仅参数列表决定重载,返回值不同不算重载。 **方法重写(Override)**:子类对父类方法的重新实现,要求方法名、参数列表完全相同,返回值为父类返回值的子类,访问权限不低于父类。目的是子类扩展父类功能(如狗重写动物叫方法),静态方法不可重写(只能隐藏)。 **核心区别**:重载看参数不同(同一类),重写看继承(参数相同)。记住:重载“换参数”,重写“换实现”。

阅读全文
Java方法重写:子类覆盖父类方法,实现多态基础

### 方法重写:子类“修改”父类方法的Java机制 方法重写(Override)是Java子类在保留父类方法声明(名称、参数列表等)不变的前提下,重写方法实现的机制,用于扩展父类行为并实现代码复用。需满足四大规则:方法名和参数列表完全一致,返回值类型为父类的子类或本身(协变),访问权限不小于父类,抛出异常需为父类异常的子类或更少。 例如,`Animal`类定义通用`eat()`方法,`Dog`和`Cat`子类通过重写分别输出“狗吃骨头”“猫吃鱼”,体现不同行为。此机制是多态核心:父类引用指向子类对象时,运行时自动调用子类重写方法,如`Animal a = new Dog(); a.eat();`输出“狗吃骨头”。 需区分方法重写与重载(Overload):重写在子类,目标是修改父类行为;重载在同一类,方法名相同但参数列表不同,目标是同一功能的不同参数版本。 方法重写是代码复用与扩展的关键,通过保留父类框架

阅读全文