📅  最后修改于: 2023-12-03 15:37:41.661000             🧑  作者: Mango
在Java中,子类可以继承父类的所有方法和属性。但有时子类需要对父类中的方法进行修改或者扩展,这就需要用到方法覆盖(或者叫方法重写)。方法覆盖是指子类重新定义了一个与父类中同名的方法,该方法具有与父类中同名方法相同的参数列表和返回类型。
当子类覆盖父类的方法时,必须遵循以下规则:
下面是一个使用方法覆盖的例子。我们定义了一个父类Animal和一个子类Dog。Animal中有一个move方法,Dog中对其进行了覆盖。
class Animal {
public void move(){
System.out.println("The animal is moving.");
}
}
class Dog extends Animal {
@Override
public void move(){
System.out.println("The dog is running.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move();
dog.move();
}
}
上面的代码输出:
The animal is moving.
The dog is running.
在子类覆盖父类的方法时,可以使用@Override注解来标识该方法是覆盖父类的方法。使用该注解可以让编译器在编译时检查是否符合覆盖规则,并提供警告信息。
class Animal {
public void move(){
System.out.println("The animal is moving.");
}
}
class Dog extends Animal {
@Override
public void move(){
System.out.println("The dog is running.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move();
dog.move();
}
}
上面的代码输出:
The animal is moving.
The dog is running.
方法覆盖是Java中常用的一个面向对象的特性。通过覆盖父类的方法,子类可以修改或扩展其行为,从而更好地满足自己的需求。记住覆盖的规则,使用@Override注解可以让代码更加健壮和易读。