编写一个 Java 应用程序,该程序中有两个类: Vehicle(用于刻画机动车)和 User(主类)。具体要求如下: Vehicle 类有一个 double 类型的变量 speed,用于刻画机动车的
时间: 2024-10-22 14:29:40 浏览: 44
用UML设计Java应用程序
在 Java 中,你可以按照以下步骤编写一个包含 `Vehicle` 和 `User` 类的应用程序:
首先,我们创建一个名为 `Vehicle` 的抽象类,它表示所有类型的车辆,包含速度信息:
```java
public abstract class Vehicle {
protected double speed;
// 构造函数
public Vehicle(double speed) {
this.speed = speed;
}
// 定义抽象方法(如果没有实现,会抛出异常)
public abstract void accelerate();
// 公共方法
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
}
```
接着,我们创建一个具体的实现类,例如 `Car` 或 `Motorcycle`,它们都是 `Vehicle` 的子类,并实现加速方法:
```java
public class Car extends Vehicle {
public Car(double speed) {
super(speed);
}
@Override
public void accelerate() {
speed += 5; // 想象这是一个实际加速度,比如每秒增加5公里/小时
System.out.println("Car is accelerating to " + speed + " km/h.");
}
}
// 同样地,我们可以为 Motorcycle 类做类似的事
public class Motorcycle extends Vehicle {
public Motorcycle(double speed) {
super(speed);
}
@Override
public void accelerate() {
speed += 10; // 可能摩托车加速更快,这里是每秒增加10公里/小时
System.out.println("Motorcycle is accelerating to " + speed + " km/h.");
}
}
```
然后,在 `User` 类中,用户可以拥有并操作不同类型的车辆:
```java
public class User {
private Vehicle vehicle;
public User(Vehicle vehicle) {
this.vehicle = vehicle;
}
public void drive() {
vehicle.accelerate();
System.out.println("Current speed of the vehicle is: " + vehicle.getSpeed() + " km/h.");
}
public static void main(String[] args) {
Vehicle car = new Car(0); // 用户实例化汽车
Vehicle motorcycle = new Motorcycle(0); // 用户实例化摩托车
User driver1 = new User(car);
driver1.drive(); // 输出汽车的加速和当前速度
User driver2 = new User(motorcycle);
driver2.drive(); // 输出摩托车的加速和当前速度
}
}
```
在这个例子中,`User` 类展示了多态如何在实践中应用,同一个 `drive()` 方法可以处理不同类型车辆的 `accelerate()` 行为。
阅读全文