用Java编程题:定义一个交通工具类Vehicle,作为父类,类中有名称name、品牌brand属性和移动的方法move(),输出“交通工具可以移动”;设计交通工具类的两个子类:火车类Train、汽车类Car,并在子类中重写父类移动的方法,分别输出“火车在轨道上行驶”和“汽车在公路上行驶”。为火车类Train添加声音sound()方法,火车“嘟嘟叫”;为汽车类Car添加声音sound()方法,汽车“嘀嘀叫”。设计驾驶员驾驶类Driver,包含name属性、序号id属性和drive()方法,使用多态的方式驾驶交通工具。注意:对类进行封装;name属性、id属性要填写自己的真实信息;代码和运行结果
时间: 2023-05-31 08:03:03 浏览: 154
//Vehicle.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 String getName() {
return name;
}
public String getBrand() {
return brand;
}
}
//Train.java
public class Train extends Vehicle {
public Train(String name, String brand) {
super(name, brand);
}
public void move() {
System.out.println("火车在轨道上行驶");
}
public void sound() {
System.out.println("嘟嘟叫");
}
}
//Car.java
public class Car extends Vehicle {
public Car(String name, String brand) {
super(name, brand);
}
public void move() {
System.out.println("汽车在公路上行驶");
}
public void sound() {
System.out.println("嘀嘀叫");
}
}
//Driver.java
public class Driver {
private String name;
private String id;
public Driver(String name, String id) {
this.name = name;
this.id = id;
}
public void drive(Vehicle vehicle) {
System.out.println(name + "驾驶" + vehicle.getBrand() + "的" + vehicle.getName());
vehicle.move();
if (vehicle instanceof Train) {
((Train) vehicle).sound();
} else if (vehicle instanceof Car) {
((Car) vehicle).sound();
}
}
}
//测试类
public class Test {
public static void main(String[] args) {
Train train = new Train("高铁", "CRH");
Car car = new Car("轿车", "Toyota");
Driver driver = new Driver("张三", "123456");
driver.drive(train);
System.out.println();
driver.drive(car);
}
}
//运行结果
张三驾驶CRH的高铁
火车在轨道上行驶
嘟嘟叫
张三驾驶Toyota的轿车
汽车在公路上行驶
嘀嘀叫