//请写出一个面向对象程序中体现多态的特点的程序,程序中也需要体现面向对象程序的封装的特征。
package lianxi.dec06;
// 定义一个父类 "Animal"
public abstract class Animal {
// 使用访问控制符 private 封装了成员变量 sound
private String sound;
// 定义一个抽象方法 makeSound
public abstract void makeSound();
// 设置sound的值
public void setSound(String sound) {
this.sound = sound;
}
// 获取sound的值
public String getSound() {
return this.sound;
}
}
package lianxi.dec06;
// 定义一个子类 "Cat" 继承自 "Animal"
public class Cat extends Animal {
// 重写父类的抽象方法 makeSound
public void makeSound() {
this.setSound("喵喵喵");
}
}
package lianxi.dec06;
// 定义一个子类 "Dog" 继承自 "Animal"
public class Dog extends Animal {
// 重写父类的抽象方法 makeSound
public void makeSound() {
this.setSound("汪汪汪");
}
}
package lianxi.dec06;
// 主类 "Test2" 测试多态和封装特性
public class Test2{
public static void main(String[] args) {
// 创建一个 Dog 对象和一个 Cat 对象,并调用它们的 makeSound 方法
Animal myAnimal1 = new Dog();
Animal myAnimal2 = new Cat();
myAnimal1.makeSound();
myAnimal2.makeSound();
System.out.println("狗的叫声是:" + myAnimal1.getSound());
System.out.println("猫的叫声是:" + myAnimal2.getSound());
}
}