pta练习汪星人和喵星人

小王和小苗分别是一只可爱的狗狗和猫猫,它们都属于哺乳动物(Mammal),性格非常活跃,并对自己的名字都很在意并感到自豪,同时,为了显示存在感,它们还经常发出一些噪音。

请编写一个抽象类Mammal和接口CanJump,并定义一个Dog类,该类继承自Mammal,并实现了CanJump接口。

注意分析以下main方法和输入输出样例,以确定Mammal类和CanJump接口的成员变量和成员方法,以及Dog类的方法该如何实现。

/* 请在这里填写答案 */

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String name1 = sc.next();
        Dog wang = new Dog(name1);
        wang.makeSound();
        if (wang instanceof CanJump) //如果dog对象所在类实现了CanJump接口,则调用jump()方法
            wang.jump();
        Mammal miao = new Mammal() { //匿名类,类中实现了makeSound()方法
            void makeSound() {
                System.out.println(getName() + ":喵喵喵!");
            }
        };
        String name2 = sc.next();
        miao.setName(name2);
        miao.makeSound();
    }
}


输入样例:
quanquan
weiwei
输出样例:
quanquan:汪汪汪!
quanquan can jump high!
weiwei:喵喵喵!

abstract class Mammal {
    private String name;
    abstract void makeSound();
    String getName() {
        return name;
    }
    void setName(String name) {
        this.name = name;
    }
}

interface CanJump {
    void jump();
}

class Dog extends Mammal implements CanJump {
    Dog(String name) {
        setName(name);
    }
    void makeSound() {
        System.out.println(getName() + ":汪汪汪!");
    }
    public void jump() {
        System.out.println(getName() + " can jump high!");
    }
}