定义一个车辆类(Vehicle
)和它的一个子类——客车类(Bus
),具体要求如下:
(1)车辆类Vehicle
,定义如下成员:
① 两个成员变量:plateNo
(车牌号,String类型)、wheelbase
(轴距,int类型),要求访问权限均为private
;
② 一个公有的无参数的构造方法,方法体为空;
③ 一个公有的带2个参数的构造方法,在方法体中设置车辆的车牌号、轴距;
④ 一个公有的无参数的方法void show( )
,该方法用于输出车辆的车牌号、轴距,输出共占2行,例如第1行类似于“车牌号:XXXXXXX”,具体格式看测试数据。
(2)客车类Bus
,它是Vehicle的子类,定义如下成员:
① 成员变量:passengers
(限载人数,int类型),要求访问权限为private
;
② 一个公有的无参数的构造方法,方法体为空;
③ 一个公有的带3个参数的构造方法,在方法体中设置客车的车牌号、轴距、限载人数;
④ 一个公有的无参数的方法void show( )
,该方法用于输出客车的车牌号、轴距、限载人数,输出共占3行,例如第1行类似于“车牌号:XXXXX”,具体格式看测试数据。
提示:巧用super关键字,可调用父类的构造方法、成员方法。
(3) 测试类Main
,在main方法中依次执行以下操作:
① 声明1个Vehicle类的对象objVehicle
,构造方法所需的2个参数从键盘输入;
② 输出一行提示信息“车辆信息如下:
”;
③ 调用show( )方法来输出objVehicle的车牌号、轴距信息;
④ 声明1个Bus类的对象objBus
,构造方法所需的3个参数从键盘输入;
⑤ 输出一行提示信息“客车信息如下:
”;
⑥ 调用show( )方法来输出objBus的车牌号、轴距、限载人数信息。
输入格式:
输入数据共2行。
第1行:车牌号字符串 轴距数值
第2行:车牌号字符串 轴距数值 限载人数数值
输出格式:
输出数据共7行。请注意提示信息和冒号为中文格式。
第1行:车辆信息如下:
第2行:车牌号:车牌号字符串
第3行:轴距:轴距数值
第4行:客车信息如下:
第5行:车牌号:车牌号字符串
第6行:轴距:轴距数值
第7行:限载人数:限载人数数值
输入样例:
在这里给出一组输入。例如:
测A12345 2650
测A67890 5955 35
输出样例:
在这里给出相应的输出。例如:
车辆信息如下:
车牌号:测A12345
轴距:2650
客车信息如下:
车牌号:测A67890
轴距:5955
限载人数:35
答案:
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner shuru=new Scanner(System.in);
Vehicle objVehicle=new Vehicle(shuru.next(),shuru.nextInt());
System.out.println("车辆信息如下:");
objVehicle.show();
Bus objBus=new Bus(shuru.next(),shuru.nextInt(),shuru.nextInt());
System.out.println("客车信息如下:");
objBus.show();
}
}
class Vehicle{
private String plateNo;
private int wheelbase;
public Vehicle(){
}
public Vehicle( String plateNo,int wheelbase){
this.plateNo=plateNo;
this. wheelbase= wheelbase;
}
public void show(){
System.out.println("车牌号:"+plateNo);
System.out.println("轴距:"+wheelbase);
}
}
class Bus extends Vehicle{
private int passengers;
public Bus(){
}
public Bus(String plateNo,int wheelbase,int passengers){
super( plateNo, wheelbase);
this.passengers=passengers;
}
public void show(){
super.show();
System.out.println("限载人数:"+passengers);
}
}