“自行车”“小汽车”“火车”都可以称之为“车”。请通过分析,抽象它们所共有的性质,定义一个抽象类Vehicle。
时间: 2024-10-08 12:16:44 浏览: 41
"自行车"、"小汽车"和"火车"虽然看起来属于不同的交通工具类别,但它们都有一些共同的属性和行为,如:
1. 都有轮子(尽管可能数量不同)或轨道,用于移动。
2. 可能都有发动机或者动力源。
3. 需要一定的操作才能启动、停止和控制方向。
4. 它们都是用来运输人员或货物的工具。
基于这些共性,我们可以定义一个抽象类`Vehicle`来概括它们的共同特征:
```java
abstract class Vehicle {
// 公用属性
protected String name;
protected int maxSpeed;
protected boolean isElectric;
// 共享的行为/构造方法
public Vehicle(String name, int maxSpeed) {
this.name = name;
this.maxSpeed = maxSpeed;
this.isElectric = false; // 默认非电动车,可以扩展为枚举类型
}
// 抽象方法,代表车辆的基本操作
abstract void start();
abstract void stop();
abstract void turn(direction direction);
// 重写toString()方法以便于输出车辆信息
@Override
public String toString() {
return "Vehicle [name=" + name + ", maxSpeed=" + maxSpeed + "]";
}
}
// 对应具体类型的子类,比如Bicycle, Car, Train
class Bicycle extends Vehicle {
// 实现父类的抽象方法
@Override
void start() {
System.out.println(name + " started by pedaling.");
}
// ...
}
class Car extends Vehicle {
// 马力、燃料类型等可能的属性
private int horsepower;
@Override
void start() {
System.out.println(name + " started with an engine.");
}
// ...
}
class Train extends Vehicle {
// 轨道类型、车厢数量等可能的属性
private String trackType;
@Override
void start() {
System.out.println(name + " started on the tracks.");
}
// ...
}
```
阅读全文