[说明]
下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。
[Java程序]
class MainJava
public static void main (String agr[]
car sedan=new car;
sedan.initialize (24, 20.0, 4);
System.out.println("The sedan can travel"
+ (1) +"miles.\n");
System.out .println("The sedan has"
+ (2) +"doors.\n");
class automobile
protected int miles_per_gallon; //汽车每加仑行驶公里数
(3) double fuel_capacity; //油箱容积
public void initialize (int in_mpg, int in_fuel)
miles_per_gallon=in_mpg;
fuel_capacity=in_fuel;
public int get_mpg() //提供一辆特定汽车每加仑公里数
return miles_per_gallon;
public double get_fuel() //提供油箱容积
return fuel_capacity;
public double travel_distance() //计算满油箱情况下的可行驶总公里数
return (4) ;
class car (5)
private int Total_doors;
public void initialize(int in_mpg, double in_fuel, int doors)
Total_doors=doors;
miles_per_gallon=in_mpg;
fuel_capacity=in_fuel;
public int doors()
return Total_doors;
参考答案:extends automobile
解析: 本题以Java语言为载体,考查面向对象程序设计中的关于类的几个概念,包括继承以及基类和派生类中函数的调用。
本题的功能是定义了一个automobile基类,并由其派生出了car类,主函数中定义了car的对象,并通过该对象调用了基类和派生类中的函数。
首先,通过整体阅读该题目,我们发现类car中的initialize函数直接对基类中的两个成员函数赋值,所以基类中的两个成员函数应该是被保护的,空(3)处应填入protected。在基类中提供了这样一个成员函数travel_distance,它返回的是该交通工具的可能行驶距离,根据题目中给出的数据,空(4)处应填入fuel_capacity/miles_per_gallon。
其次,本题还考查了派生类继承的方式,由于在主函数中直接通过car的对象调用了基类的公有函数,空(5)处应填入extends automobile。
最后,通过定义car的对象sedan,分别调用了基类和派生类中的一个函数,空(1)处应填入sedan.travel_distance(),空(2)处应填入sedan.doors()。