以下是一个关于方法重写的例子,展示了如何在Java中通过继承和多态实现方法重写:
// 定义一个父类
class Animal {
// 父类中的方法
void makeSound() {
System.out.println("Animal makes a sound");
}
}
// 定义一个子类,继承自Animal
class Dog extends Animal {
// 重写父类的makeSound方法
@Override
void makeSound() {
System.out.println("Dog barks");
}
}
// 定义另一个子类,继承自Animal
class Cat extends Animal {
// 重写父类的makeSound方法
@Override
void makeSound() {
System.out.println("Cat meows");
}
}
// 主类,演示多态
public class PolymorphismExample {
public static void main(String[] args) {
// 创建父类类型的引用,指向Dog对象
Animal dog = new Dog();
// 调用重写后的方法
dog.makeSound(); // 输出:Dog barks
// 创建父类类型的引用,指向Cat对象
Animal cat = new Cat();
// 调用重写后的方法
cat.makeSound(); // 输出:Cat meows
}
}
代码解析:
- 父类
Animal
:定义了一个makeSound()
方法,输出 “Animal makes a sound”。 - 子类
Dog
和Cat
:分别继承自Animal
类,并重写了makeSound()
方法,提供了各自的具体实现。 - 多态演示:在
main
方法中,使用父类Animal
的引用指向子类Dog
和Cat
的对象。通过父类的引用调用makeSound()
方法时,实际执行的是子类重写后的方法。
输出结果:
Dog barks
Cat meows
这个例子展示了如何通过方法重写实现多态,允许不同的子类对象对同一方法调用提供不同的实现。希望这个例子能帮助你更好地理解方法重写和多态的概念!