动物乐队的表演
在一个阳光灿烂的午后,森林里的动物们决定举办一场盛大的音乐会,展示他们的音乐才华。为了这场音乐会,动物们组成了一个乐队,每种动物都有自己独特的演奏方式。
人物介绍
- 动物类(Animal):这是一个超类,代表所有动物,它有一个方法
makeSound()
。 - 狗(Dog):这个类继承自动物类,重写了
makeSound()
方法,发出“汪汪”声。 - 猫(Cat):这个类也继承自动物类,重写了
makeSound()
方法,发出“喵喵”声。 - 青蛙(Frog):同样是继承自动物类,重写了
makeSound()
方法,发出“呱呱”声。
故事开始
当音乐会开始时,动物们齐聚在一起,主席熊(Bear)负责指挥演出。熊开始说道:“亲爱的朋友们,今天我们要听听每个动物的声音!”
class Animal {
public void makeSound() {
// 默认声音
System.out.println("Some generic animal sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow");
}
}
class Frog extends Animal {
@Override
public void makeSound() {
System.out.println("Ribbit");
}
}
接下来的时刻,熊从乐队中抽取动物,给他们个别表演的机会。
public class AnimalBand {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
Animal myFrog = new Frog();
// 动物们依次演出
perform(myDog);
perform(myCat);
perform(myFrog);
}
public static void perform(Animal animal) {
animal.makeSound(); // 调用各自的发声方法
}
}
动物们的表演
熊叫出了狗:“好了,让我们来听听我们的‘音乐家’——狗!”
- 狗站出来,发出了:“Bark”。听众们欢呼不断。
接着熊叫出了猫:“现在,让我们欢迎我们的‘小歌手’——猫!”
- 猫跳到台前,甜美地叫出了:“Meow”。再一次,观众们回应热烈。
最后,熊叫出了青蛙:“最后,给我们带来节奏的将是青蛙!”
- 青蛙则在一旁呱呱叫着:“Ribbit”。总是为观众带来惊喜。
每当一个动物被叫到,熊只是需要调用 perform()
方法,传递相应的动物对象。根据对象类型的不同,调用的 makeSound()
方法也会不同,这正是多态的体现。
故事结尾
这场音乐会通过不同动物的多样发声,展示了多态的魅力:相同的方法 perform()
被应用于不同的动物,生成了不同的结果。每只动物根据它自己的实现方式,展现了自己独特的声音,而观众们对此感到无比震撼。
通过这个故事,我们可以理解 Java 多态的概念:父类可以定义方法,而子类可以对这些方法进行不同的实现。当调用方法时,程序会根据对象的实际类型而不是变量的类型来确定实际调用哪个方法,这使得程序在执行期间灵活而多变。这种能力使得动物乐队的演出不仅有趣而且富有表现力。