假设有一个接口 Animal ,其中定义了两个抽象方法 eat() 和 makeSound() ,分别用于描述动物吃东西和发出声音的行为。请你编写两个具体的类 Dog 和 Cat 分别实现这个接口,并根据各自的特点来实现这两个方法,并实现测试类进行测试。
时间: 2024-11-29 15:36:02 浏览: 3
好的,首先我们创建一个`Animal`接口,然后定义两个抽象方法`eat()`和`makeSound()`:
```java
public interface Animal {
void eat();
String makeSound();
}
```
接下来,我们将为`Dog`和`Cat`类分别实现这个接口:
```java
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("The dog is eating");
}
@Override
public String makeSound() {
return "Woof!";
}
}
public class Cat implements Animal {
@Override
public void eat() {
System.out.println("The cat is eating");
}
@Override
public String makeSound() {
return "Meow!";
}
}
```
现在我们需要一个测试类来确保这些行为被正确地实现了:
```java
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AnimalTest {
@Test
public void testDogEatingAndSound() {
Dog dog = new Dog();
dog.eat(); // 输出:The dog is eating
assertEquals("Woof!", dog.makeSound()); // 检查叫声是否正确
}
@Test
public void testCatEatingAndSound() {
Cat cat = new Cat();
cat.eat(); // 输出:The cat is eating
assertEquals("Meow!", cat.makeSound()); // 检查叫声是否正确
}
}
```
在这个例子中,`AnimalTest`类使用JUnit框架中的`@Test`注解来标记测试用例,`assertEquals`方法用来验证动物的叫声是否符合预期。
阅读全文