ProhibitDriving接口 -boolean prohibitDriving(enum Day)方法 抽象类Vehicle,非抽象子类Car类 -成员方法void goOut( ProhibitDrivingp),接口作为参数,执行接口回调·写测试类carTest,声明对象myCar,设置车牌,执行g00utO判断是否限行·可选使用匿名类,lambda表达式,具体方法不限
时间: 2023-09-19 18:07:02 浏览: 60
以下是代码示例:
```java
// Day枚举类
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
// ProhibitDriving接口
interface ProhibitDriving {
boolean prohibitDriving(Day day);
}
// 抽象类Vehicle
abstract class Vehicle {
String licensePlate; // 车牌号
public Vehicle(String licensePlate) {
this.licensePlate = licensePlate;
}
public abstract void goOut(ProhibitDriving p); // 抽象方法
}
// 非抽象子类Car类
class Car extends Vehicle {
public Car(String licensePlate) {
super(licensePlate);
}
@Override
public void goOut(ProhibitDriving p) {
if (p.prohibitDriving(Day.MONDAY)) {
System.out.println("今天限行," + licensePlate + "不能上路!");
} else {
System.out.println(licensePlate + "可以出行!");
}
}
}
// 测试类carTest
public class carTest {
public static void main(String[] args) {
Car myCar = new Car("京A12345"); // 创建Car对象
// 使用匿名类作为ProhibitDriving接口的实现类
myCar.goOut(new ProhibitDriving() {
@Override
public boolean prohibitDriving(Day day) {
return day == Day.MONDAY; // 周一限行
}
});
// 使用lambda表达式作为ProhibitDriving接口的实现类
myCar.goOut((day) -> day == Day.MONDAY); // 周一限行
}
}
```
运行结果:
```
今天限行,京A12345不能上路!
今天限行,京A12345不能上路!
```