java 动物叫声调用问题

public class Main {

public void Howl() {
    System.out.println("叽里咕噜");
}

public static void main(String[] args) {
    Cat cat = new Cat();
    cat.Howl();
    Dog dog = new Dog();
    dog.Howl();
    Duck duck= new Duck();
    duck.Howl();
    Chook chook= new Chook();
    chook.Howl();
}

}

class Cat extends Main {
public void Howl() {
System.out.println("cat:喵喵");
}
}

class Dog extends Main {
public void Howl() {
System.out.println("dog:汪汪");
}
}

class Duck extends Main{
public void Howl() {
System.out.println("duck:嘎嘎");
}
}

class Chook extends Main {
public void Howl() {
System.out.println("chook:咯咯");
}
}
朋友们,这个怎么给他加上一个代码,不是让他四个一起输出,而是我调用哪一个就输出哪一个叫声

你要输出哪个,就new那一个。现在不就是这样的吗?没搞懂你的要求

看看是这个意思吗


import java.util.Scanner;
public class Main {
public void Howl() {
    System.out.println("叽里咕噜");
}
 
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    int n=0;
    Cat cat = new Cat();
    Dog dog = new Dog();
    Duck duck= new Duck();
    Chook chook= new Chook();
    while(n!=-1){
        System.out.println("=====================================");
        System.out.println("请输入想要输出的动物叫声:");
        System.out.println("1.cat");
        System.out.println("2.dog");
        System.out.println("3.duck");
        System.out.println("4.chook");
        n=sc.nextInt();
        switch(n){
            case -1:
                System.out.println("收到退出命令代码,退出循环");
                break;
            case 1:
                cat.Howl();
                break;
            case 2:
                dog.Howl();
                break;
            case 3:
                duck.Howl();
                break;
            case 4:
                chook.Howl();
                break;
            default:
                System.out.println("输入非法,请重新输入");
                break;
        }
    }
}
}

class Cat extends Main {
public void Howl() {
System.out.println("cat:喵喵");
}
}

class Dog extends Main {
public void Howl() {
System.out.println("dog:汪汪");
}
}

class Duck extends Main{
public void Howl() {
System.out.println("duck:嘎嘎");
}
}

class Chook extends Main {
public void Howl() {
System.out.println("chook:咯咯");
}
}