commit
66621d6ca8
1 changed files with 49 additions and 0 deletions
@ -0,0 +1,49 @@ |
|||||
|
// 游泳接口
|
||||
|
interface Swimmable { |
||||
|
void swim(); |
||||
|
} |
||||
|
|
||||
|
// 抽象动物类
|
||||
|
abstract class Animal { |
||||
|
public abstract void makeSound(); |
||||
|
} |
||||
|
|
||||
|
// 狗:继承Animal + 实现游泳接口
|
||||
|
class Dog extends Animal implements Swimmable { |
||||
|
@Override |
||||
|
public void makeSound() { |
||||
|
System.out.println("小狗汪汪汪叫"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void swim() { |
||||
|
System.out.println("小狗会游泳,正在游泳"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 猫:只继承Animal,不实现游泳接口
|
||||
|
class Cat extends Animal { |
||||
|
@Override |
||||
|
public void makeSound() { |
||||
|
System.out.println("小猫喵喵喵叫"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 主类名改成Main!和文件名Main.java完全一致
|
||||
|
public class Main { |
||||
|
public static void main(String[] args) { |
||||
|
// 多态测试:父类引用指向子类对象
|
||||
|
Animal animal1 = new Dog(); |
||||
|
Animal animal2 = new Cat(); |
||||
|
|
||||
|
// 多态调用叫声
|
||||
|
animal1.makeSound(); |
||||
|
animal2.makeSound(); |
||||
|
|
||||
|
// 向下转型调用游泳方法
|
||||
|
if (animal1 instanceof Dog dog) { |
||||
|
dog.swim(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
= |
||||
Loading…
Reference in new issue