用继承思想实现汽车类,公交类和卡车类java idea
时间: 2024-10-09 20:00:19 浏览: 38
Java开发接口和抽象类的区别共2页.pdf.zip
在Java中,可以使用继承机制来实现一个"交通工具"的基础类,然后让公交车、汽车和卡车等特定类型的车辆作为其子类。这里是一个简单的例子:
首先创建一个基础的`Vehicle`类:
```java
public abstract class Vehicle {
private String modelName;
public Vehicle(String modelName) {
this.modelName = modelName;
}
// 抽象方法,表示所有车辆都有启动、停止的基本行为
public abstract void start();
public abstract void stop();
public String getModelName() {
return modelName;
}
// 重写toString方法,用于展示车辆信息
@Override
public String toString() {
return "Vehicle [modelName=" + modelName + "]";
}
}
```
接下来,我们为`Bus`, `Car`, 和 `Truck` 类分别继承`Vehicle` 并重写抽象方法:
```java
public class Bus extends Vehicle {
public Bus(String modelName) {
super(modelName);
}
// 实现start和stop方法,假设公交车有额外功能如打开车门
@Override
public void start() {
System.out.println("Bus " + getModelName() + " starting...");
// 具体的启动动作...
}
@Override
public void stop() {
System.out.println("Bus " + getModelName() + " stopping...");
// 具体的停车动作...
}
}
public class Car extends Vehicle {
public Car(String modelName) {
super(modelName);
}
// 实现start和stop方法,假设小车有不同的加速方式
@Override
public void start() {
System.out.println("Car " + getModelName() + " starting...");
// 具体的启动操作...
}
@Override
public void stop() {
System.out.println("Car " + getModelName() + " stopping...");
// 具体的刹车操作...
}
}
public class Truck extends Vehicle {
public Truck(String modelName) {
super(modelName);
}
// 实现start和stop方法,比如卡车可能会有卸货的操作
@Override
public void start() {
System.out.println("Truck " + getModelName() + " starting...");
// 具体的启动流程...
}
@Override
public void stop() {
System.out.println("Truck " + getModelName() + " stopping...");
// 具体的停车步骤...
}
}
```
现在你可以创建这些类的对象,并根据需要调用它们的方法:
```java
public class Main {
public static void main(String[] args) {
Vehicle bus = new Bus("No.1 Bus");
bus.start(); // 输出 "Bus No.1 Bus starting..."
bus.stop(); // 输出 "Bus No.1 Bus stopping..."
Vehicle car = new Car("Toyota");
car.start(); // 输出 "Car Toyota starting..."
car.stop(); // 输出 "Car Toyota stopping..."
Vehicle truck = new Truck("Delivery Truck");
truck.start(); // 输出 "Truck Delivery Truck starting..."
truck.stop(); // 输出 "Truck Delivery Truck stopping..."
}
}
```
阅读全文