// 定义一个父类 Animal
class Animal {
// 定义一个方法 sound,子类可以根据需要重写这个方法
public void sound() {
System.out.println("Animal makes a sound");
}
}
// 定义一个子类 Dog,继承自 Animal
class Dog extends Animal {
// 重写父类的 sound 方法
@Override
public void sound() {
System.out.println("Dog barks");
}
}
// 定义一个子类 Cat,继承自 Animal
class Cat extends Animal {
// 重写父类的 sound 方法
@Override
public void sound() {
System.out.println("Cat meows");
}
}
// 测试多态性的主类
public class PolymorphismExample {
public static void main(String[] args) {
// 创建 Animal 类型的引用,但实际指向的是 Dog 对象
Animal myDog = new Dog();
// 调用 sound 方法,输出 "Dog barks"
myDog.sound();
// 创建 Animal 类型的引用,但实际指向的是 Cat 对象
Animal myCat = new Cat();
// 调用 sound 方法,输出 "Cat meows"
myCat.sound();
}
}
Animal:定义了一个通用的方法 sound(),该方法可以被子类重写。Dog 和 Cat:分别继承了 Animal 类,并重写了 sound() 方法,实现了各自特有的行为。PolymorphismExample 类中,我们创建了 Animal 类型的引用,但实际上指向的是 Dog 或 Cat 的对象。当我们调用 sound() 方法时,实际执行的是子类中重写后的方法,而不是父类中的方法。这就是 Java 中多态性的体现。通过这种方式,程序可以在运行时根据对象的实际类型来决定调用哪个方法,从而实现更加灵活和可扩展的设计。
上一篇:java final关键字的作用
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站