实验内容:
1.编写程序:使用多态实现主人与宠物玩耍功能(主人调用playwithPet方法)
2.狗具有特有的接飞盘方法,企鹅具有特有的南极游泳方法。请编写测试类分别调用各种具体宠物的特有方法
3.使用向下转型
4.使用instanceof判断宠物类型
宠物类:
public abstract class Pet {
private String name;
private int age;
private String gender;
public Pet(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public abstract void play();
}
狗类:
public class Dog extends Pet {
public Dog(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void play() {
System.out.println("和主人一起玩球");
}
public void catchFlyDisk() {
System.out.println("接飞盘");
}
}
企鹅类:
public class Penguin extends Pet {
public Penguin(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void play() {
System.out.println("和主人一起玩雪球");
}
public void swimInAntarctica() {
System.out.println("在南极游泳");
}
}
主人类:
public class Master {
public void playWithPet(Pet pet) {
pet.play();
}
}
测试类:
public class Test {
public static void main(String[] args) {
Master master = new Master();
Dog dog = new Dog("旺财", 3, "公");
Penguin penguin = new Penguin("QQ", 2, "母");
master.playWithPet(dog);
master.playWithPet(penguin);
if (dog instanceof Dog) {
dog.catchFlyDisk();
}
if (penguin instanceof Penguin) {
penguin.swimInAntarctica();
}
}
}