完成一个类要求继承抽象类和实现两个接口的Demo 要求文档描述和运行结果
时间: 2024-09-13 12:16:33 浏览: 44
在Java中,一个类可以通过extends关键字继承一个抽象类,同时通过implements关键字实现多个接口。下面我将给出一个简单的示例,并对这个示例进行文档描述和解释其运行结果。
首先,我们定义一个抽象类`Animal`,它包含一个抽象方法`makeSound`和一个具体方法`eat`:
```java
/**
* 抽象类Animal
*/
abstract class Animal {
/**
* 动物的吃的方法
*/
public void eat() {
System.out.println("All animals eat food.");
}
/**
* 抽象方法:发出声音
*/
public abstract void makeSound();
}
```
接下来,我们定义两个接口`Swim`和`Fly`,分别代表游泳和飞翔的行为:
```java
/**
* 接口Swim
*/
interface Swim {
/**
* 游泳的方法
*/
void swim();
}
/**
* 接口Fly
*/
interface Fly {
/**
* 飞翔的方法
*/
void fly();
}
```
然后,我们创建一个名为`Duck`的类,它继承自`Animal`抽象类,并实现了`Swim`和`Fly`接口:
```java
/**
* 类Duck继承自Animal,并实现Swim和Fly接口
*/
class Duck extends Animal implements Swim, Fly {
@Override
public void makeSound() {
System.out.println("Quack, quack!");
}
@Override
public void swim() {
System.out.println("The duck swims.");
}
@Override
public void fly() {
System.out.println("The duck flies.");
}
}
```
最后,我们通过一个测试类`TestDuck`来展示`Duck`类的实例化和方法调用:
```java
/**
* 测试类TestDuck
*/
public class TestDuck {
public static void main(String[] args) {
Duck duck = new Duck();
duck.eat(); // 继承自Animal类的方法
duck.makeSound(); // 重写自Animal类的方法
duck.swim(); // 实现自Swim接口的方法
duck.fly(); // 实现自Fly接口的方法
}
}
```
运行`TestDuck`类的结果将会是:
```
All animals eat food.
Quack, quack!
The duck swims.
The duck flies.
```
通过这个例子,我们可以看到`Duck`类如何同时继承一个抽象类和实现两个接口。这样的设计使得`Duck`类既具有动物共有的特性(如吃),也具备特定的行为能力(如游泳和飞翔)。
阅读全文