Java ブリーダーの動物への給餌ケース、カプセル化、継承、多態性、インターフェイス

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. ドッグクラス

/**
 * 狗类
 *  共有属性和行为直接从动物类继承
 */
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. 猫クラス

/*
 * 猫类
 * 继承动物类的属性和行为
 * */
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);
    }
}

おすすめ

転載: blog.csdn.net/BO2345/article/details/125832169