2.设计一个名为Swimmable的接口,其中包含void swim()方法;设计另一个名为Flyable的接口,其中包含void fly()方法。定义一个Duck类实现上述两个接口。定义测试类,演示接口类型的使用。
时间: 2024-11-13 16:23:59 浏览: 20
在Java中,你可以创建接口来定义一组规范,然后让类去实现这些接口。下面是一个简单的示例:
首先,我们定义两个接口Swimmable和Flyable,它们分别对应鸭子游泳和飞行的行为:
```java
public interface Swimmable {
void swim();
}
public interface Flyable {
void fly();
}
```
接下来,我们创建一个Duck类,它实现了这两个接口:
```java
public class Duck implements Swimmable, Flyable {
@Override
public void swim() {
System.out.println("The duck is swimming.");
}
@Override
public void fly() {
System.out.println("The duck is flying.");
}
}
```
在这个例子中,Duck类通过提供swim()和fly()方法的具体实现,满足了Swimmable和Flyable接口的要求。
最后,我们可以创建一个测试类,演示如何通过接口类型来使用这个Duck对象:
```java
public class TestDuck {
public static void main(String[] args) {
// 创建Duck对象
Duck myDuck = new Duck();
// 作为Swimmable接口实例调用swim()
myDuck.swim();
// 作为Flyable接口实例调用fly()
myDuck.fly();
// 使用通配符泛型列表存储多种类型的动物
List<? extends Swimmable> animals = Arrays.asList(myDuck);
// 虽然animals的实际类型是Duck,但这里只能访问Swimmable的通用方法
for (Swimmable animal : animals) {
animal.swim(); // 正确调用
}
}
}
```
阅读全文