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.

55 lines
1.3 KiB

// 抽象类:动物
abstract class Animal {
// 抽象方法:动物叫声
public abstract void makeSound();
}
// 接口:具备游泳能力
interface Swimmable {
void swim();
}
// 狗类:继承动物,实现游泳接口
class Dog extends Animal implements Swimmable {
@Override
public void makeSound() {
System.out.println("Dog: 汪汪汪");
}
@Override
public void swim() {
System.out.println("Dog 正在游泳");
}
}
// 猫类:仅继承动物
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat: 喵喵喵");
}
}
// 测试类
public class AnimalTest {
public static void main(String[] args) {
// 多态:父类引用指向子类对象
Animal dog = new Dog();
Animal cat = new Cat();
// 测试叫声
dog.makeSound();
cat.makeSound();
// 测试游泳(仅狗实现了接口)
if (dog instanceof Swimmable) {
((Swimmable) dog).swim();
} else {
System.out.println("该动物不会游泳");
}
if (cat instanceof Swimmable) {
((Swimmable) cat).swim();
} else {
System.out.println("Cat 不会游泳");
}
}
}