利用继承思想,定义交通工具抽象类实现汽车、火车、飞机子类,编写上转型程序并输出各个交通工具的乘坐信息
时间: 2024-10-12 19:05:37 浏览: 54
表面积和体积_抽象类Shape_shape类继承_
在面向对象编程中,通过继承机制可以创建一个抽象的交通工具类,比如`Vehicle`,然后让具体的车辆如`Car`, `Train`, 和`Airplane`继承这个抽象类。这里是一个简单的示例:
首先,定义一个`Vehicle`抽象类,包含通用的属性和方法,例如座位数(`seats`)和通用的乘坐信息获取方法:
```java
public abstract class Vehicle {
protected int seats;
public Vehicle(int seats) {
this.seats = seats;
}
// 抽象方法,用于展示乘坐信息
public abstract String getPassengerInfo();
}
```
接着,我们创建三个子类,分别代表汽车、火车和飞机,并覆盖`getPassengerInfo()`方法以提供特定的信息:
```java
public class Car extends Vehicle {
public Car(int seats) {
super(seats);
}
@Override
public String getPassengerInfo() {
return "汽车," + seats + "个座位";
}
}
public class Train extends Vehicle {
public Train(int seats) {
super(seats);
}
@Override
public String getPassengerInfo() {
return "火车," + seats + "节车厢";
}
}
public class Airplane extends Vehicle {
public Airplane(int seats) {
super(seats);
}
@Override
public String getPassengerInfo() {
return "飞机," + seats + "个座位";
}
}
```
现在我们可以编写一个上转型的程序,即通过`Vehicle`类型的引用来操作实际的子类对象,并打印乘坐信息:
```java
public static void main(String[] args) {
Vehicle car = new Car(5);
Vehicle train = new Train(10);
Vehicle airplane = new Airplane(30);
System.out.println(car.getPassengerInfo());
System.out.println(train.getPassengerInfo());
System.out.println(airplane.getPassengerInfo());
// 这里体现了多态,虽然引用是Vehicle类型,但实际执行的是子类的方法
}
```
运行这段代码会得到每个交通工具的乘坐信息。
阅读全文