用java定义一个交通工具类Vehicle,作为父类,类中有名称name、品牌brand属性和移动的方法move(),输出“交通工具可以移动”; 设计交通工具类的两个子类:火车类Train、汽车类Car,并在子类中重写父 类移动的方法,分别输出“火车在轨道上行驶”和“汽车在公路上行驶” 为火车类Train添加声音 sound()方法,火车“嘟嘟叫”;为汽车类Car添加声音sound()方法,汽车“嘀嘀叫”。 设计驾驶员驾驶类Driver,包含name属性、序号id属性和drive()方法,使用多态的方式驾驶交通工具。 注意: 对类进行封装;
时间: 2023-05-20 17:02:39 浏览: 859
以下是代码实现:
```java
// 交通工具类
public class Vehicle {
private String name;
private String brand;
public Vehicle(String name, String brand) {
this.name = name;
this.brand = brand;
}
public void move() {
System.out.println("交通工具可以移动");
}
}
// 火车类
public class Train extends Vehicle {
public Train(String name, String brand) {
super(name, brand);
}
@Override
public void move() {
System.out.println("火车在轨道上行驶");
}
public void sound() {
System.out.println("火车“嘟嘟叫”");
}
}
// 汽车类
public class Car extends Vehicle {
public Car(String name, String brand) {
super(name, brand);
}
@Override
public void move() {
System.out.println("汽车在公路上行驶");
}
public void sound() {
System.out.println("汽车“嘀嘀叫”");
}
}
// 驾驶员类
public class Driver {
private String name;
private int id;
public Driver(String name, int id) {
this.name = name;
this.id = id;
}
public void drive(Vehicle vehicle) {
System.out.println(name + "驾驶" + vehicle.getClass().getSimpleName() + "(" + vehicle.name + "," + vehicle.brand + ")");
vehicle.move();
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
Train train = new Train("动车", "CRH380A");
Car car = new Car("轿车", "BMW");
Driver driver = new Driver("张三", 1001);
driver.drive(train);
train.sound();
driver.drive(car);
car.sound();
}
}
```
输出结果:
```
张三驾驶Train(动车,CRH380A)
火车在轨道上行驶
火车“嘟嘟叫”
张三驾驶Car(轿车,BMW)
汽车在公路上行驶
汽车“嘀嘀叫”
```
阅读全文