子类如何重写父类的方法
时间: 2024-09-13 20:15:32 浏览: 80
在面向对象编程中,子类重写父类方法是指在子类中重新定义父类中的方法,使得当使用子类的对象调用该方法时,执行的是子类中定义的方法。这样做的目的是为了实现多态,即允许子类根据需要提供特定于子类的行为。重写方法时,子类的方法需要保持与父类方法相同的名称、返回类型(或者子类型的返回类型)、参数列表以及访问修饰符(或者更宽松的访问修饰符)。此外,子类重写的方法通常需要使用`@Override`注解来明确表示这个意图,这不是强制要求,但推荐使用。
这里有一些重写父类方法时需要注意的规则:
1. 如果父类的方法是`public`、`protected`或默认(包)访问权限,子类可以重写该方法。
2. 如果父类的方法是`private`或者`final`,子类将不能重写该方法。
3. 如果子类重写的方法声明抛出的异常比父类方法声明抛出的异常范围更宽,则违反了重写规则。
4. 在子类中,可以通过使用`super`关键字来调用父类的被重写的方法。
下面是一个简单的Java代码示例,展示了如何进行方法重写:
```java
class Animal {
public void makeSound() {
System.out.println("Animal is making a sound.");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking.");
}
}
public class TestOverride {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();
myAnimal.makeSound(); // 输出: Animal is making a sound.
myDog.makeSound(); // 输出: Dog is barking.
}
}
```
在这个例子中,`Dog`类重写了`Animal`类中的`makeSound`方法。
阅读全文