Java方法重写
在Java中,方法重写是指在子类中重新定义父类中已经定义的方法。以下是Java方法重写的基本原则:
- 子类中的重写方法必须具有相同的方法签名(即相同的方法名、参数类型和返回类型)。
- 子类中的重写方法不能比父类中的原方法具有更低的访问权限。例如,如果父类方法是public,那么子类方法也必须是public或者protected。
- 子类方法不能比父类方法抛出更多或者更广泛的异常,但可以抛出更少或者更具体的异常。
- 子类方法不能比父类方法具有更少的重载版本。
当子类中的方法与父类中的方法具有相同的方法签名时,子类对象调用该方法时,会优先调用子类中的重写方法。
以下示例展示了方法重写的使用:
class Animal {
public void makeSound() {
System.out.println("Animal makes sound");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound(); // Output: Animal makes sound
Cat cat = new Cat();
cat.makeSound(); // Output: Cat meows
}
}
在上面的示例中,Animal类中定义了一个makeSound()方法,而Cat类继承自Animal类并重写了makeSound()方法。当Animal对象调用makeSound()方法时,输出为"Animal makes sound",而当Cat对象调用makeSound()方法时,输出为"Cat meows"。