1.创建动物类Animal
public abstract class Animal {
//动物类
private String name;
//不知道是什么动物,吃什么也不知道,abstract抽象
public abstract void eat();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.接口类Jump
public interface Jump {
void jump();
}
3.Dog类
/**
* 狗类
* 共有属性和行为直接从动物类继承
*/
public class Dog extends Animal implements Jump{
@Override
public void eat() {
System.out.println(super.getName()+"吃骨头");
//super构造器,通过子类中使用super调用父类中的构造器
}
@Override
public void jump() {
System.out.println(super.getName()+"汪汪汪");
}
}
4.Cat类
/*
* 猫类
* 继承动物类的属性和行为
* */
public class Cat extends Animal implements Jump{
@Override
public void eat() {
//super构造器,通过子类中使用super调用父类中的构造器
System.out.println(super.getName()+"吃鱼");
}
@Override
public void jump() {
System.out.println(super.getName()+"喵喵喵");
}
}
5.饲养员类
//饲养员类,很多动物,一个饲养员
public class Feeder {
private String name;//饲养员名字
//喂狗的方法
public void feed(Dog dog){
System.out.println(this.name+"喂"+dog.getName());
dog.eat();
}
//喂猫
public void feed(Cat cat){
System.out.println(this.name+"喂"+cat.getName());
cat.eat();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
6.测试类
public class Test { //测试类
public static void main(String[] args) {
//创建狗类对象
Dog dog = new Dog();
dog.setName("大黄");
//dog.eat();
//dog.jump();
//创建猫类对象
Cat cat = new Cat();
cat.setName("狸花");
//cat.eat();
//cat.jump();
//饲养员对象
Feeder feeder = new Feeder();
feeder.setName("王五");
//饲养动物
feeder.feed(dog);
feeder.feed(cat);
}
}