java如何重写方法
重写方法的基本概念
在Java中,重写(Override)是指子类重新定义父类中已有的方法。重写方法必须遵循特定的规则,以确保多态性的正确实现。
重写方法的规则
子类重写父类的方法时,方法名、参数列表和返回类型必须与父类方法完全相同。
访问修饰符不能比父类方法的访问修饰符更严格。例如,父类方法是protected,子类方法可以是protected或public,但不能是private。
重写方法不能抛出比父类方法更多的异常,或者抛出父类方法未声明的检查异常。
使用@Override注解
在子类中重写方法时,建议使用@Override注解。这可以帮助编译器检查是否满足重写的条件,避免因拼写错误或参数不匹配导致的问题。
@Override
public void methodName() {
// 方法实现
}
示例代码
以下是一个完整的重写方法示例:
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
}
}
注意事项
静态方法不能被重写,只能被隐藏。如果子类定义了与父类相同的静态方法,这称为方法隐藏。
私有方法不能被重写,因为私有方法在子类中不可见。
构造方法不能被重写,因为构造方法不是继承的。
重写与重载的区别
重写发生在父子类之间,方法签名必须相同;重载发生在同一个类中,方法名相同但参数列表不同。
重写是实现多态的关键;重载是为了提供方法的不同版本。







