重写
时间: 2023-12-24 18:03:38 浏览: 81
重写(override)是指在子类中重新实现(覆盖)从父类继承来的方法。在Java中,子类可以通过重写父类的方法来改变该方法的行为。重写方法的签名(即方法名、参数类型和返回类型)必须与被重写方法的签名相同,否则编译器会报错。
在子类中重写父类的方法时,可以使用super关键字来调用父类的方法。例如,可以在子类中使用super.methodName()来调用父类中的methodName方法。
重写的目的通常是为了改变方法的行为,例如根据子类的特殊需求来实现不同的逻辑,或者提高方法的性能等。
下面是一个简单的重写示例,假设有一个Animal类和一个Cat类,Cat类继承自Animal类,并重写了Animal类的makeSound方法:
```java
public class Animal {
public void makeSound() {
System.out.println("The animal makes a sound.");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("The cat meows.");
}
}
```
在这个例子中,Animal类有一个makeSound方法,输出一个字符串表示动物发出了声音。Cat类继承了Animal类,并重写了makeSound方法,使得猫发出的声音是“meows”,而不是“makes a sound”。
当我们调用Cat类的makeSound方法时,会优先调用Cat类中的方法,而不是Animal类的方法。因此,下面的代码
```java
Animal animal = new Cat();
animal.makeSound();
```
输出的结果是:
```
The cat meows.
```
这说明Cat类中的makeSound方法已经成功地重写了Animal类的makeSound方法,使得猫发出了“meows”的声音。
阅读全文