Java编写程序,设计一个名为Swimmable的接口,其中包含void swim()方法,设计另一个名为Flyable的接口,其中包含void fly()方法。 定义一个Duck类实现上述两个接口。定义测试类,演示接口类型的使用。
时间: 2024-12-13 11:15:36 浏览: 12
在Java中,我们可以创建接口(interface)来定义一组公共的行为规范。这里我们将创建`Swimmable`和`Flyable`两个接口,以及一个`Duck`类来实现这两个接口。以下是相应的代码示例:
```java
// 定义Swimmable接口
public interface Swimmable {
void swim();
}
// 定义Flyable接口
public interface Flyable {
void fly();
}
// 实现Swimmable和Flyable接口的Duck类
public class Duck implements Swimmable, Flyable {
@Override
public void swim() {
System.out.println("鸭子正在游泳。");
}
@Override
public void fly() {
System.out.println("鸭子正在飞翔。");
}
}
// 测试类
public class TestDuck {
public static void main(String[] args) {
// 创建Duck对象并调用接口方法
Duck duck = new Duck();
// 使用接口名直接调用方法
duck.swim(); // 输出: 鸭子正在游泳。
duck.fly(); // 输出: 鸭子正在飞翔。
// 或者使用instanceof检查后再调用
if (duck instanceof Swimmable) {
((Swimmable) duck).swim(); // 同上
}
if (duck instanceof Flyable) {
((Flyable) duck).fly(); // 同上
}
}
}
```
在这个例子中,`TestDuck`类展示了如何通过实例引用鸭子(Duck),既可以直接使用接口名调用方法,也可以通过`instanceof`检查后动态地调用相应接口的方法。这样,我们可以根据鸭子的实际行为(它既是游泳者也是飞行者)来选择合适的接口方法。
阅读全文