public class Demo {
public static void main(String[] args) {
Keeper k = new Keeper();
Animal a = new Dog();
k.method(a);
Animal b = new Sheep();
k.method(b);
Animal c =new QingWa();
k.method(c);
}
}
public abstract class Animal {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Animal() {
}
public Animal(int age) {
this.age = age;
}
public void drink(){
System.out.println("喝水");
}
public abstract void eat();
}
public class Dog extends Animal implements Swim {
@Override
public void eat() {
System.out.println("狗啃骨头");
}
@Override
public void swin() {
System.out.println("狗刨式游泳");
}
}
public class QingWa extends Animal implements Swim {
@Override
public void eat() {
System.out.println("青蛙吃虫子");
}
@Override
public void swin() {
System.out.println("青蛙蛙泳");
}
}
public class Sheep extends Animal{
@Override
public void eat() {
System.out.println("羊吃草");
}
}
public interface Swim {
public abstract void swin();
}
public class Keeper {
public void method(Animal animal) {
if (animal instanceof Dog) {
Dog d = (Dog) animal;
d.eat();
d.swin();
}else if(animal instanceof Sheep){
Sheep s = (Sheep) animal;
s.eat();
}else if (animal instanceof QingWa){
QingWa q = (QingWa) animal;
q.eat();
q.swin();
}
}
}