Animal
public class Animal { private int age; private String color; public Animal() { } public Animal(int age, String color) { this.age = age; this.color = color; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public void eat(String something) { System.out.println("动物在吃" + something); } }
Cat
public class Cat extends Animal { public Cat() { } public Cat(int age, String color) { super(age, color); } @Override public void eat(String something) { System.out.println(getAge() + "岁的" + getColor() + "颜色的猫眯着眼睛侧着头吃" + something); } public void catchMouse() { System.out.println("猫抓老鼠"); } }
Dog
public class Dog extends Animal { public Dog() { } public Dog(int age, String color) { super(age, color); } @Override public void eat(String something) { System.out.println(getAge() + "岁的" + getColor() + "颜色的狗两只前腿死死的抱住" + something + "猛吃"); } public void lookHome(){ System.out.println("狗在看家"); } }
Person
public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //饲养狗 public void keepPet(Animal a, String something) { if (a instanceof Dog) { Dog d = (Dog) a; System.out.println("年龄为" + age + "岁的" + name + "养了一只" + a.getColor() + "颜色的" + a.getAge() + "岁的狗"); d.eat(something); } else if (a instanceof Cat) { Cat c = (Cat) a; System.out.println("年龄为" + age + "岁的" + name + "养了一只" + a.getColor() + "颜色的" + a.getAge() + "岁的猫"); c.eat(something); }else { System.out.println("没有这种动物"); } } }
Demo
public class Demo { public static void main(String[] args) { // Person p1 = new Person("老王", 30); // Dog dog = new Dog(3, "黑色"); // p1.keepPet(dog, "骨头"); // // Person p2 = new Person("老李", 35); // Cat cat = new Cat(2, "白"); // p2.keepPet(cat, "鱼干"); Person p = new Person("老王", 30); Dog d = new Dog(2, "黑"); Cat c = new Cat(3,"灰"); p.keepPet(d, "骨头"); p.keepPet(c,"鱼"); } }
执行结果:
年龄为30岁的老王养了一只黑颜色的2岁的狗
2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃
年龄为30岁的老王养了一只灰颜色的3岁的猫
3岁的灰颜色的猫眯着眼睛侧着头吃鱼