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
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 不会游泳");
|
|
}
|
|
}
|
|
}
|