4. 接口Car和测试类Sy13_4定义如下,请回答问题: interface Car { String getName(); int getPrice(); } public class Sy13_4 { public static void main(String[] args) { Carshop carshop = new Carshop(); carshop.sellCar(new BMW()); carshop.sellCar(new BENZ()); System.out.println("总收入:"+carshop.getMoney()); } } ① 定义实现接口Car的BMW类和BENZ类; ② 定义Carshop类,包含:私有成员变量money,初始值为0;公有方法sellCar,根据卖出的车的价格,修改money值;公有方法getMoney,返回money值; ③ 运行程序,记录输出结果; ④ 结合程序,说明什么是接口回调?(补充完整代码)
时间: 2024-03-02 16:50:33 浏览: 23
以下是补充完整的代码:
```
interface Car {
String getName();
int getPrice();
}
class BMW implements Car {
public String getName() {
return "BMW";
}
public int getPrice() {
return 300000;
}
}
class BENZ implements Car {
public String getName() {
return "BENZ";
}
public int getPrice() {
return 350000;
}
}
class Carshop {
private int money = 0;
public void sellCar(Car car) {
money += car.getPrice();
System.out.println("卖出一辆" + car.getName() + ",价格为" + car.getPrice() + "元。");
}
public int getMoney() {
return money;
}
}
public class Sy13_4 {
public static void main(String[] args) {
Carshop carshop = new Carshop();
carshop.sellCar(new BMW());
carshop.sellCar(new BENZ());
System.out.println("总收入:" + carshop.getMoney());
}
}
```
程序输出结果为:
```
卖出一辆BMW,价格为300000元。
卖出一辆BENZ,价格为350000元。
总收入:650000
```
接口回调是指,一个类实现了某个接口后,在该类中调用另一个类的方法,这个被调用的方法的参数是实现该接口的类的对象。在本例中,Carshop类的sellCar方法就是接口回调,它的参数是实现了Car接口的BMW和BENZ对象。这种方法能够在保证代码灵活性的同时,提高代码的复用性。