写代码Java,按照以下要求编写程序 1) 定义一个名为Swimmable(可游泳的)的接口,其中包含void swim()方法,定义另一个名为Flyable(可飞的)的接口,其中包含void fly()方法。 2) 定义一个名为Animal的抽象类,其中包含一个void eat()的抽象方法。定义一个名为WildDuck(野鸭)的类实现上述两个接口,并继承Animal类。 3) 编写main()方法,在其中创建一个WildDuck实例,调用它的各种方法。将WildDuck实例分别赋值给一个Swimmable引用、Flyable引用和Animal引用,测试通过这些引用能否调用相应接口或抽象类中定义的方法。
时间: 2024-03-05 13:55:18 浏览: 191
好的,下面是 Java 代码实现:
```java
// 定义可游泳接口
interface Swimmable {
void swim();
}
// 定义可飞接口
interface Flyable {
void fly();
}
// 定义动物抽象类
abstract class Animal {
public abstract void eat();
}
// 野鸭类,实现可游泳和可飞接口,继承动物抽象类
class WildDuck extends Animal implements Swimmable, Flyable {
public void swim() {
System.out.println("野鸭正在游泳!");
}
public void fly() {
System.out.println("野鸭正在飞行!");
}
public void eat() {
System.out.println("野鸭正在进食!");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
WildDuck wildDuck = new WildDuck();
// 分别赋值给可游泳、可飞和动物引用
Swimmable swimmable = wildDuck;
Flyable flyable = wildDuck;
Animal animal = wildDuck;
// 调用各种方法
swimmable.swim();
flyable.fly();
animal.eat();
}
}
```
输出结果为:
```
野鸭正在游泳!
野鸭正在飞行!
野鸭正在进食!
```
可以看到,通过分别赋值给不同的引用,我们可以调用到野鸭类实现的不同接口和继承的抽象类中定义的方法。
阅读全文