如何覆盖java
覆盖 Java 方法
在 Java 中,方法覆盖(Override)是指子类重新定义父类中已存在的方法。覆盖必须满足以下条件:

- 方法名、参数列表和返回类型必须与父类方法完全一致。
- 子类方法的访问修饰符不能比父类更严格(例如,父类是
protected,子类可以是public或protected,但不能是private)。 - 被覆盖的方法不能是
final或static。
示例代码

class Parent {
public void display() {
System.out.println("Parent class method");
}
}
class Child extends Parent {
@Override
public void display() {
System.out.println("Child class overridden method");
}
}
覆盖与重载的区别
- 覆盖:发生在父子类之间,方法签名必须完全相同。
- 重载:发生在同一类中,方法名相同但参数列表不同。
使用 @Override 注解
添加 @Override 注解可以显式声明方法覆盖,帮助编译器检查是否符合覆盖规则。如果不符合(例如拼写错误或参数不匹配),编译器会报错。
动态绑定(运行时多态)
覆盖的方法调用取决于对象的实际类型(子类),而非引用类型(父类)。例如:
Parent obj = new Child();
obj.display(); // 输出 "Child class overridden method"
禁止覆盖的场景
- 父类方法声明为
final。 - 父类方法是
static(静态方法属于类,不支持覆盖,但可以隐藏)。
覆盖的常见用途
- 修改或扩展父类方法的行为。
- 实现多态性,允许子类提供特定实现。
通过遵循上述规则,可以正确实现 Java 方法的覆盖。






