编写程序,定义一个名为Swimmable(可游泳的)的接口,其中包含void swim()方法,定义另一个名为Flyable(可飞的)的接口,其中包含void fly()方法。 定义一个名为Animal的抽象类,其中包含一个抽象方法void eat()。定义一个名为WildDuck(野鸭)的类实现上述两个接口,并继承Animal类。 编写main()方法,在其中创建一个WildDuck实例,调用它的各种方法。将WildDuck实例分别赋值给一个Swimmalbe引用、Flyable引用和Animal引用,测试通过这些引用能否调用相应接口或抽象类中定义的方法
时间: 2024-03-26 15:34:07 浏览: 402
好的,以下是实现代码:
```java
// Swimmable接口
interface Swimmable {
void swim();
}
// Flyable接口
interface Flyable {
void fly();
}
// Animal抽象类
abstract class Animal {
abstract void eat();
}
// WildDuck类实现Swimmable、Flyable接口并继承Animal类
class WildDuck extends Animal implements Swimmable, Flyable {
@Override
void eat() {
System.out.println("Wild duck is eating.");
}
@Override
public void swim() {
System.out.println("Wild duck is swimming.");
}
@Override
public void fly() {
System.out.println("Wild duck is flying.");
}
}
// 测试程序
public class Test {
public static void main(String[] args) {
WildDuck wildDuck = new WildDuck();
// 将WildDuck实例分别赋值给Swimmable引用、Flyable引用和Animal引用
Swimmable swimmable = wildDuck;
Flyable flyable = wildDuck;
Animal animal = wildDuck;
// 测试调用相应接口或抽象类中定义的方法
swimmable.swim();
flyable.fly();
animal.eat();
}
}
```
程序输出:
```
Wild duck is swimming.
Wild duck is flying.
Wild duck is eating.
```
可以看到,通过Swimmable引用、Flyable引用和Animal引用都能成功调用WildDuck实例中实现的方法。
阅读全文