java基础案例4-3多彩的声音

package com.itheima;
import java.util.Scanner;
//动物
abstract class Animal{
    abstract void setName(String name);
}

//人
abstract class Person{
    abstract void setName(String name);//饲养者
    abstract void action(String name);//不同的行为
}

//接口实现获取名字
interface GetName{
    String getName();
}

class Dog extends Animal implements GetName{
    private String name;
    void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
}

class Host extends Person implements GetName{
    private String name;
    void setName(String name){
        this.name = name;
    }
    void action(String name){
        System.out.println(name + "开心的欢跳。。。");
    }
    public String getName(){
        return name;
    }
}

class Folk extends Person implements GetName{
    private String name;
    void setName(String name){
        this.name = name;
    }
    void action(String name){
        System.out.println(name + "平常的吃东西。。。");
    }
    public String getName(){
        return name;
    }
}

class Stranger extends Person implements GetName{
    private String name;
    void setName(String name){
        this.name = name;
    }
    void action(String name){
        System.out.println(name + "汪汪汪。。。");
    }
    public String getName(){
        return name;
    }
}

public class Main {
    static void show() {
        System.out.println("0:退出系统" + "\t" + "1:主人喂食" + "\t" + "2:家人喂食" + "\t" + "3:陌生人喂食");
    }
    public static void main(String[] args)
    {
        Host host = new Host();
        Folk folk = new Folk();
        Stranger stranger = new Stranger();
        Dog dog = new Dog();
        host.setName("主人");
        folk.setName("家人");
        stranger.setName("陌生人");
        dog.setName("旺财");
        int num;
        Scanner in = new Scanner(System.in);
        OUT:
        while(true){
            show();
            System.out.print("请选择:");
            num = in.nextInt();
            switch(num)
            {
                case 0:
                    break OUT;
                case 1:
                    host.getName();
                    host.action(dog.getName());
                    break;
                case 2:
                    folk.getName();
                    folk.action(dog.getName());
                    break;
                case 3:
                    stranger.getName();
                    stranger.action(dog.getName());
                    break;
            }
        }
    }
}