//动物发生模拟器. 请在下面的【】处添加代码。 public class AnimalShoutTest2 { public static void main(String[] args) { Cat cat = new Cat(); Dog dog = new Dog(); Goat goat = new Goat(); speak(cat); speak(dog); speak(goat); } //定义静态方法speak() 【】 } //定义抽象类Animal 【】class Animal{ 【】 } //基于Animal类,定义猫类Cat,并重写两个抽象方法 class Cat 【】{ 【】 【】 } //基于Animal类,定义狗类Dog,并重写两个抽象方法 class Dog 【】{ 【】 【】 } //基于Animal类,定义山羊类Goat,并重写两个抽象方法 class Goat 【】{ 【】 【】 }在【】处添加代码
时间: 2023-05-27 12:01:39 浏览: 65
public static void speak(Animal animal){
animal.shout();
}
abstract class Animal{
abstract void eat();
abstract void shout();
}
class Cat extends Animal{
@Override
void eat() {
System.out.println("Cat is eating...");
}
@Override
void shout() {
System.out.println("Meow~");
}
}
class Dog extends Animal{
@Override
void eat() {
System.out.println("Dog is eating...");
}
@Override
void shout() {
System.out.println("Woof!");
}
}
class Goat extends Animal{
@Override
void eat() {
System.out.println("Goat is eating...");
}
@Override
void shout() {
System.out.println("Bleat!");
}
}
相关问题
Animal接口 分数 20 作者 sy 单位 西南石油大学 已知有如下Animal抽象类和IAbility接口,请编写Animal子类Dog类与Cat类,并分别实现IAbility接口,另外再编写一个模拟器类Simulator调用IAbility接口方法,具体要求如下。 已有的Animal抽象类定义: abstract class Animal{ private String name; //名字 private int age; //年龄 public Animal(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age
) { this.age = age; } public abstract void play(); //抽象方法,动物都会玩 } 已有的IAbility接口定义: interface IAbility{ void run(); //动物都会跑 void eat(); //动物都会吃 } 要求: 1. 编写Dog类和Cat类,分别继承Animal类,并实现IAbility接口。 2. 在Dog类和Cat类中,实现IAbility接口中的方法run()和eat(),其中run()方法输出“狗在奔跑”,eat()方法输出“狗在啃骨头”(Dog类中),或“猫在吃鱼”(Cat类中)。 3. 在Animal类中,声明一个抽象方法play(),表示动物都会玩。 4. 在Dog类和Cat类中,重写抽象方法play(),其中play()方法输出“狗在玩球”(Dog类中),或“猫在玩线团”(Cat类中)。 5. 编写Simulator类,调用IAbility接口中的方法run()和eat(),并调用Animal类中的方法play()。其中,Simulator类中定义了一个方法show,接收一个Animal类型的参数,调用该参数的run()、eat()和play()方法。 6. 在main方法中,创建Dog类对象和Cat类对象各一个,然后调用Simulator类中的show方法,分别传入这两个对象,观察输出结果。
以下是代码实现:
```java
abstract class Animal{
private String name; //名字
private int age; //年龄
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void play(); //抽象方法,动物都会玩
}
interface IAbility{
void run(); //动物都会跑
void eat(); //动物都会吃
}
class Dog extends Animal implements IAbility{
public Dog(String name, int age){
super(name, age);
}
@Override
public void run() {
System.out.println("狗在奔跑");
}
@Override
public void eat() {
System.out.println("狗在啃骨头");
}
@Override
public void play() {
System.out.println("狗在玩球");
}
}
class Cat extends Animal implements IAbility{
public Cat(String name, int age){
super(name, age);
}
@Override
public void run() {
System.out.println("猫在奔跑");
}
@Override
public void eat() {
System.out.println("猫在吃鱼");
}
@Override
public void play() {
System.out.println("猫在玩线团");
}
}
class Simulator{
public void show(Animal animal){
animal.run();
animal.eat();
animal.play();
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("旺财", 3);
Cat cat = new Cat("咪咪", 2);
Simulator simulator = new Simulator();
simulator.show(dog);
simulator.show(cat);
}
}
```
输出结果为:
```
狗在奔跑
狗在啃骨头
狗在玩球
猫在奔跑
猫在吃鱼
猫在玩线团
```
已知有如下Animal抽象类和IAbility接口,请编写Animal子类Dog类与Cat类,并分别实现IAbility接口,另外再编写一个模拟器类Simulator调用IAbility接口方法,具体要求如下。 已有的Animal抽象类定义: abstract class Animal{ private String name; //名字 private int age; //年龄 public Animal(String name, in
t age){ this.name = name; this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } public abstract void eat(); }
已有的IAbility接口定义: interface IAbility{ void run(); void swim(); }
下面是Dog类的实现:
class Dog extends Animal implements IAbility{
public Dog(String name, int age){
super(name, age);
}
public void eat(){
System.out.println(getName() + " is eating bones!");
}
public void run(){
System.out.println(getName() + " is running!");
}
public void swim(){
System.out.println(getName() + " is swimming!");
}
}
下面是Cat类的实现:
class Cat extends Animal implements IAbility{
public Cat(String name, int age){
super(name, age);
}
public void eat(){
System.out.println(getName() + " is eating fish!");
}
public void run(){
System.out.println(getName() + " is running!");
}
public void swim(){
System.out.println(getName() + " cannot swim!");
}
}
下面是Simulator类的实现:
class Simulator{
public static void main(String[] args){
Dog dog = new Dog("Buddy", 3);
Cat cat = new Cat("Kitty", 2);
dog.eat();
dog.run();
dog.swim();
cat.eat();
cat.run();
cat.swim();
}
}
当我们运行Simulator类时,输出结果如下:
Buddy is eating bones!
Buddy is running!
Buddy is swimming!
Kitty is eating fish!
Kitty is running!
Kitty cannot swim!