java如何重写
Java 重写(Override)方法的基本概念
重写是指在子类中重新定义父类已有的方法,以实现不同的功能。重写的方法必须与父类方法具有相同的名称、参数列表和返回类型(或是其子类)。

重写的规则
- 方法名、参数列表和返回类型必须与父类方法相同。
- 访问修饰符不能比父类方法更严格(例如父类方法是
protected,子类方法不能是private)。 - 不能重写
final或static方法。 - 子类方法抛出的异常不能比父类方法抛出的异常更宽泛。
示例代码
class Parent {
public void display() {
System.out.println("Parent's display method");
}
}
class Child extends Parent {
@Override
public void display() {
System.out.println("Child's display method");
}
}
public class Main {
public static void main(String[] args) {
Parent obj = new Child();
obj.display(); // 输出: Child's display method
}
}
使用 @Override 注解
@Override 注解用于显式标记方法为重写的方法。虽然不是强制要求,但建议使用该注解,因为它可以帮助编译器检查重写是否正确。

重写与重载的区别
- 重写(Override):子类重新定义父类方法,方法签名相同。
- 重载(Overload):同一类中定义多个同名方法,但参数列表不同。
动态绑定
Java 通过动态绑定(运行时多态)实现方法重写。调用哪个方法取决于对象的实际类型,而不是引用类型。例如:
Parent obj = new Child();
obj.display(); // 调用的是 Child 类的 display 方法
注意事项
- 不能重写
private方法,因为它们在子类中不可见。 - 构造方法不能被重写。
- 静态方法不能被重写,但可以隐藏(重新定义)。






