小王和小苗分别是一只可爱的狗狗和猫猫,它们都属于哺乳动物(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!");
}
}