阅读量:119
在Java中,重写(Override)方法是在子类中重新实现父类中的方法。为了重写一个方法,你需要遵循以下规则:
- 子类方法的访问权限不能比父类方法的访问权限更严格。例如,如果父类方法是
public的,那么子类方法也必须是public的。 - 子类方法的返回类型必须与父类方法的返回类型相同,或者是其子类型(协变返回类型)。
- 子类方法的方法签名必须与父类方法的方法签名完全相同,包括方法名、参数列表和异常列表。
- 子类方法不能抛出比父类方法更多的检查型异常。
以下是一个简单的示例,演示如何在子类中重写父类的方法:
// 父类
class Animal {
void makeSound() {
System.out.println("The animal makes a sound");
}
}
// 子类
class Dog extends Animal {
// 重写父类的makeSound方法
@Override
void makeSound() {
System.out.println("The dog barks");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound(); // 输出:The dog barks
}
}
在这个例子中,Dog类继承了Animal类,并重写了makeSound方法。当我们创建一个Dog对象并调用makeSound方法时,它将输出The dog barks,而不是The animal makes a sound。