用Java语言写定义一个接口canFly,其中,含有speed()方法,定义一个抽象类Machine,其中含work()方法,定义具体类AirPlane,继承Machine并实现canFly接口,每个飞机有型号、飞行速度,编写构造方法,toString()方法,飞机的work() 方法调用时,输出“正在飞行,速度为…”。 创建一个飞机对象测试,执行对象work()方法; 将飞机对象赋值给canFly 类型变量,测试输出其对象描述信息及speed()结果。
时间: 2024-03-10 18:49:37 浏览: 118
好的,以下是代码实现:
```java
interface canFly {
void speed();
}
abstract class Machine {
abstract void work();
}
class AirPlane extends Machine implements canFly {
private String model;
private int flySpeed;
public AirPlane(String model, int flySpeed) {
this.model = model;
this.flySpeed = flySpeed;
}
@Override
public void work() {
System.out.println("正在飞行,速度为" + this.flySpeed + "km/h");
}
@Override
public void speed() {
System.out.println("飞行速度为" + this.flySpeed + "km/h");
}
@Override
public String toString() {
return "飞机型号为" + this.model + ",飞行速度为" + this.flySpeed + "km/h";
}
}
public class Main {
public static void main(String[] args) {
AirPlane airPlane = new AirPlane("波音747", 800);
airPlane.work();
canFly fly = airPlane;
System.out.println(fly.toString());
fly.speed();
}
}
```
输出结果为:
```
正在飞行,速度为800km/h
飞机型号为波音747,飞行速度为800km/h
飞行速度为800km/h
```
首先我们定义了一个canFly接口,其中含有speed()方法。然后定义了一个抽象类Machine,其中含有work()方法。接着定义了具体类AirPlane,继承了Machine并实现了canFly接口,因此需要重写这两个类的抽象方法。在AirPlane类中,我们定义了两个成员变量model和flySpeed(飞行速度),并编写了构造方法和toString()方法。
在AirPlane的work()方法中,我们输出了正在飞行的信息。接着我们在Main函数中创建了一个AirPlane对象airPlane,并调用了它的work()方法。
然后我们把airPlane对象赋值给了canFly类型的变量fly,并分别调用了它的toString()方法和speed()方法,验证了多态的实现。
阅读全文