编写一个Animal类,运用抽象方法。

编写一个Animal类,设计相应的属性和抽象方法eat()与talk()方法,再编写子类,狗、猫、猪,牛,最后编写Master类,里面有一个feed()方法,使用多态实现调用feed方法进行喂养!例如:用户输入狗,那么控制台就是输出去喂狗!

下面是我写的

import java.util.Scanner;

class Master{
public void feed(Pet d) {
d.eat();
d.talk();
}
}
class Pet{
public void eat() {

}

public void talk() {
    // TODO 自动生成的方法存根
    
}

}
class Pet1{
public void talk() {}
}
class Dog extends Pet{
public void eat() {
System.out.println("出去喂狗!");
}
// public void talk() {
// System.out.println();
// }
}
class Cat extends Pet{
public void eat() {
System.out.println("出去喂猫!");
}
// public void talk() {
// System.out.println();
// }
}
class Pig extends Pet{
public void eat() {
System.out.println("出去喂猪!");
}
// public void talk() {
// System.out.println();
// }
}
class Cattle extends Pet{
public void eat() {
System.out.println("出去喂牛!");
}
// public void talk() {
// System.out.println();
// }
}
public class Animal {

public static void main(String[] args) {
    try (// TODO 自动生成的方法存根
    Scanner sc = new Scanner(System.in)) {
        System.out.println("请输入狗,猫,猪,牛的其中一个动物:");
        String name=sc.next();
        System.out.println("出去喂"+name+"!");
        System.out.println("");
    Master m=new Master();
    m.feed(new Dog());
    m.feed(new Cat());
    m.feed(new Pig());
    m.feed(new Cattle());
    }
}

}

输出结果

img

要把下面的输出结果(我用红线标出来)不再显示,而上面的,用户输入动物,输出就对应哪种动物出去喂它。这才是我想要的结果。


package com.example;

import java.util.Scanner;
class Master {
    public void feed(Animal a) {
        a.eat();
        a.talk();
    }
}
abstract class  Animal {
    public abstract void eat();
    public abstract void talk();
}
class Dog extends Animal {
    public void eat() {
        System.out.println("出去喂狗!");
    }
    public void talk() {
        
    }
}
class Cat extends Animal {
    public void eat() {
        System.out.println("出去喂猫!");
    }
    public void talk() {
        
    }
}
class Pig extends Animal {
    public void eat() {
        System.out.println("出去喂猪!");
    }
    public void talk() {
        
    }
}
class Cattle extends Animal {
    public void eat() {
        System.out.println("出去喂牛!");
    }
    public void talk() {
        
    }
}
public class Demo {
    public static void main(String[] args) {
        Master m = new Master();
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入狗,猫,猪,牛的其中一个动物:");
            String name = sc.next();
            switch (name) {
                case "狗":
                    m.feed(new Dog());
                    break;
                case "猫":
                    m.feed(new Cat());
                    break;
                case "猪":
                    m.feed(new Pig());
                    break;
                case "牛":
                    m.feed(new Cattle());
                    break;
                default:
                    System.out.println("没有这种动物");
                    break;
            }
        }
    }
}

请问谁能给点意见,或帮我改一下代码?我找不出要补哪里!

Animal是动物的父类,有抽象方法,所以这个类也是抽象的;
狗、猫、猪,牛都应该继承Animal;
Master才应该是放main方法类;

public class Master{
    public static void main(String[] args) {
        
              Scanner sc = new Scanner(System.in)) {
              System.out.println("请输入狗,猫,猪,牛的其中一个动物:");
              String name=sc.next();
              feed(name);
    }

    private void feed(String name){
        if(name.epuals("狗")){
            new Dog().feed();
        }else if(){
        }
    }
}