//动物发生模拟器. 请在下面的【】处添加代码。 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 16:01:39 浏览: 187
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!");
}
}
相关问题
请逐句解释一下下面的代码import java.util.Arrays; import org.apache.http.client.fluent.Request; import ece448.iot_sim.SimConfig; import ece448.iot_sim.Main; public class GradeP2 { public static void main(String[] args) throws Exception { SimConfig config = new SimConfig( 8080, Arrays.asList("xxxx", "yyyy", "zzzz.789"), null, null, null); try (Main m = new Main(config)) { Grading.run(new GradeP2(), 10); } } private String get(String pathParams) throws Exception { return Request.Get("http://127.0.0.1:8080"+pathParams) .userAgent("Mozilla/5.0") .connectTimeout(1000) .socketTimeout(1000) .execute().returnContent().asString(); } public boolean testCase00() throws Exception { String ret = get("/xxxx"); return (ret.indexOf("xxxx is off") != -1) && (ret.indexOf("xxxx is on") == -1) && (ret.indexOf("Power reading is 0.000") != -1); } public boolean testCase01() throws Exception { String ret = get("/xxxx?action=on"); return (ret.indexOf("xxxx is on") != -1) && (ret.indexOf("xxxx is off") == -1); } public boolean testCase02() throws Exception { String ret = get("/xxxx?action=off"); return (ret.indexOf("xxxx is off") != -1) && (ret.indexOf("xxxx is on") == -1); } public boolean testCase03() throws Exception { String ret = get("/xxxx?action=on"); return (ret.indexOf("xxxx is on") != -1) && (ret.indexOf("xxxx is off") == -1); } public boolean testCase04() throws Exception { String ret = get("/xxxx?action=toggle"); return (ret.indexOf("xxxx is off") != -1) && (ret.indexOf("xxxx is on") == -1); } public boolean testCase05() throws Exception { String ret = get("/xxxx?action=toggle"); return (ret.indexOf("xxxx is on") != -1) && (ret.indexOf("xxxx is off") == -1); } public boolean testCase06() throws Exception { String ret = get("/yyyy"); return (ret.indexOf("yyyy is off") != -1) && (ret.indexOf("yyyy is on") == -1); } public boolean testCase07() throws Exception { String ret = get("/xxxx"); return (ret.indexOf("xxxx is on") != -1) && (ret.indexOf("xxxx is off") == -1); } public boolean testCase08() throws Exception { String ret = get("/zzzz.789"); return (ret.indexOf("Power reading is 0.000") != -1); } public boolean testCase09() throws Exception { get("/zzzz.789?action=on"); Thread.sleep(1500); String ret = get("/zzzz.789"); return (ret.indexOf("Power reading is 789.000") != -1); } } private static final Logger logger = LoggerFactory.getLogger(HTTPCommands.class); }
这段代码是一个 Java 程序,其中引入了几个包:
- java.util.Arrays:提供了一系列操作数组的方法。
- org.apache.http.client.fluent.Request:提供了一种轻量级、简单易用的 HTTP 客户端库,可以用来发送 HTTP 请求。
- ece448.iot_sim.SimConfig:定义了一个类,用来配置 IoT 模拟器。
- ece448.iot_sim.Main:IoT 模拟器的主类。
程序定义了一个名为 GradeP2 的类,其中包含了一个 main 方法。在 main 方法中,程序创建了一个 SimConfig 实例,并将其传递给 Main 类的构造函数。然后,程序调用 Grading.run 方法,该方法会运行 GradeP2 类中的测试用例。
GradeP2 类中还包含了一些方法,用来执行不同的测试用例。例如,testCase00 方法会向 IoT 模拟器发送一个请求,获取名为 "xxxx" 的设备的状态,并检查返回结果是否符合预期。程序还定义了一个名为 get 的私有方法,该方法用来发送 HTTP 请求并获取响应内容。最后,程序还定义了一个名为 logger 的 Logger 对象,用来记录日志。
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);
}
}
```
输出结果为:
```
狗在奔跑
狗在啃骨头
狗在玩球
猫在奔跑
猫在吃鱼
猫在玩线团
```
阅读全文