(1)设计一个名为 Swimmable 的接口,其中包含 void swim()方法;设计另一个名为Flyable 的接口,其中包含 void fly()方法。 (2)定义一个 Duck类实现上述两个接口。在void swim()方法中输出“我会游泳!”,在void fly()方法中输出“我会飞!”。 (3)定义一个BeiJingDuck类继承Duck类,重写swim()方法输出“我是北京鸭,我也会飞!”,在主方法中创建一个Duck对象,通过该对象调用swim()方法和fly()方法。定义一个Swimmable类型的变量,通过该变量实现接口回调swim()方法。创建一个BeiJingDuck对象,通过该对象调用重写以后的swim()方法。java
时间: 2024-03-26 20:35:30 浏览: 92
(1) Swimmable 接口和 Flyable 接口的设计:
```java
public interface Swimmable {
void swim();
}
public interface Flyable {
void fly();
}
```
(2) Duck 类的实现:
```java
public class Duck implements Swimmable, Flyable {
@Override
public void swim() {
System.out.println("我会游泳!");
}
@Override
public void fly() {
System.out.println("我会飞!");
}
}
```
(3) BeiJingDuck 类的实现:
```java
public class BeiJingDuck extends Duck {
@Override
public void swim() {
System.out.println("我是北京鸭,我也会飞!");
}
}
```
主方法中的代码如下:
```java
public static void main(String[] args) {
Duck duck = new Duck();
duck.swim(); // 输出“我会游泳!”
duck.fly(); // 输出“我会飞!”
Swimmable s = new Duck();
s.swim(); // 输出“我会游泳!”
BeiJingDuck beijingDuck = new BeiJingDuck();
beijingDuck.swim(); // 输出“我是北京鸭,我也会飞!”
}
```
输出结果如下:
```
我会游泳!
我会飞!
我会游泳!
我是北京鸭,我也会飞!
```
其中,第一行和第二行输出了 Duck 对象调用 swim() 和 fly() 方法的结果,第三行输出了 Swimmable 类型的变量 s 调用 swim() 方法的结果,第四行输出了 BeiJingDuck 对象调用 swim() 方法的结果。可以看到,Duck 类实现了 Swimmable 接口和 Flyable 接口,BeiJingDuck 类继承了 Duck 类并重写了 swim() 方法。
阅读全文