You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.2 KiB
28 lines
1.2 KiB
public class AnimalTest {
|
|
public static void main(String[] args) {
|
|
System.out.println("=== 1. 多态调用Animal父类引用 ===");
|
|
// 父类引用指向子类对象(多态核心)
|
|
Animal dog = new Dog();
|
|
Animal cat = new Cat();
|
|
|
|
// 多态调用makeSound():运行时自动执行子类的方法
|
|
dog.makeSound(); // 输出:汪汪汪!
|
|
cat.makeSound(); // 输出:喵喵喵!
|
|
System.out.println("\n=== 2. 测试Dog的游泳能力(接口多态) ===");
|
|
// 接口引用指向实现类对象(接口多态)
|
|
Swimmable swimmableDog = new Dog();
|
|
swimmableDog.swim(); // 输出:小狗在水里游泳~
|
|
System.out.println("\n=== 3. 类型判断与向下转型(可选拓展) ===");
|
|
// 判断Animal对象是否能游泳(instanceof)
|
|
if (dog instanceof Swimmable) {
|
|
System.out.println("Dog是可游泳的");
|
|
// 向下转型为Swimmable,调用swim方法
|
|
((Swimmable) dog).swim();
|
|
}
|
|
if (cat instanceof Swimmable) {
|
|
System.out.println("Cat是可游泳的");
|
|
} else {
|
|
System.out.println("Cat不会游泳");
|
|
}
|
|
}
|
|
}
|