3.有程序定义如下,请回答问题。 class FemaleDriver extends Driver { public void drives(Vehicle v) { System.out.println("A Female driver drives " + v.getName()); } } class MaleDriver extends Driver { public void drives(Vehicle v ) { System.out.println("A male driver drives " + v.getName()); } } public class Sy12_3 { static public void main(String [ ] args){ Vehicle v = new Car(); Driver a = new FemaleDriver(); a.drives(v); //语句1 v = new Truck(); a = new MaleDriver( ); a.drives(v); //语句2 } } ① 定义抽象类Driver,包含抽象方法void drives(Vehicle v); ② 定义抽象类Vehicle,包含抽象方法String getName(); ③ 定义子类Car和Truck,重写getName()方法,分别返回字符串“car”和“truck”。 ④ 运行程序,记录程序输出结果。 ⑤ 补充完整代码
时间: 2024-01-26 15:05:15 浏览: 23
完整代码如下:
```
abstract class Driver {
public abstract void drives(Vehicle v);
}
abstract class Vehicle {
public abstract String getName();
}
class Car extends Vehicle {
public String getName() {
return "car";
}
}
class Truck extends Vehicle {
public String getName() {
return "truck";
}
}
class FemaleDriver extends Driver {
public void drives(Vehicle v) {
System.out.println("A female driver drives " + v.getName());
}
}
class MaleDriver extends Driver {
public void drives(Vehicle v) {
System.out.println("A male driver drives " + v.getName());
}
}
public class Sy12_3 {
public static void main(String[] args) {
Vehicle v = new Car();
Driver a = new FemaleDriver();
a.drives(v); // A female driver drives car
v = new Truck();
a = new MaleDriver();
a.drives(v); // A male driver drives truck
}
}
```
程序输出结果为:
```
A female driver drives car
A male driver drives truck
```