📅  最后修改于: 2023-12-03 15:02:04.960000             🧑  作者: Mango
在面向对象编程中,方法覆写是一个重要的概念。方法覆写指的是在子类中重新定义父类的方法,以实现子类更具体的功能需求。本文将介绍Java中的方法覆写相关知识点。
Java中的方法覆写指的是在子类中重新定义一个与父类中具有相同名称、参数列表和返回类型的方法。这个子类方法会覆盖父类中的方法,并且在执行时会调用子类的方法。方法覆写的目的是让子类能够根据自己的具体需求实现一个新的方法。
以下是Java中方法覆写的基本语法:
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("The dog barks");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();
myAnimal.makeSound();
myDog.makeSound();
}
}
在上面的代码中,我们定义了两个类Animal和Dog,Dog是Animal的子类。在Animal类中定义了一个makeSound()方法,在Dog类中覆写了这个方法。我们可以看到在main方法中,即使myDog是Animal类型的变量,但是在调用makeSound()方法时会执行Dog类中的方法。
Java中的方法覆写必须遵守一定的规则,否则编译器会报错或产生运行时错误。以下是Java中方法覆写的规则:
在子类中覆写方法时,可以使用super关键字调用父类中被覆写的方法。super关键字可以用于访问父类中的属性或方法。
以下是使用super关键字调用父类方法的示例:
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
super.makeSound();
System.out.println("The dog barks");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();
myDog.makeSound();
}
}
在上面的代码中,我们在Dog类中使用super.makeSound()调用了父类Animal中的makeSound()方法。运行上述代码时,输出如下:
The animal makes a sound
The dog barks
Java中的方法覆写是面向对象编程中的一个重要概念,它可以让子类根据自己的具体需求实现一个新的方法。在覆写方法时,必须遵守一定的规则,并且可以使用super关键字调用父类中的方法。掌握方法覆写的技巧可以让我们更好地设计和开发Java程序。