抽象类Vehicle,非抽象子类Car类,均实现接口ProhibitDrivingProhibitDriving)V: boolean prohibitDriving (enum Day)Vehicle属性:车牌号;实现prohibitDriving方法:比如周一限行尼号o,5:Car 继承父类 Vehicle若干构造方法(Car屆性自定义)getter写测试类carTest, 声明对象myCar,设置车牌:声明接口变量goOut;(输入今日周几)用goOut判断是否限行
时间: 2024-02-24 12:00:13 浏览: 19
好的,你需要一个Java代码实现。以下是符合要求的代码:
```java
import java.util.Arrays;
import java.util.List;
interface ProhibitDriving {
boolean prohibitDriving(Day dayOfWeek);
}
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
abstract class Vehicle implements ProhibitDriving {
private String licensePlate;
public Vehicle(String licensePlate) {
this.licensePlate = licensePlate;
}
public String getLicensePlate() {
return licensePlate;
}
@Override
public boolean prohibitDriving(Day dayOfWeek) {
List<Day> prohibitedDays = Arrays.asList(Day.MONDAY, Day.WEDNESDAY, Day.FRIDAY);
return prohibitedDays.contains(dayOfWeek);
}
}
class Car extends Vehicle {
private int numberOfDoors;
public Car(String licensePlate, int numberOfDoors) {
super(licensePlate);
this.numberOfDoors = numberOfDoors;
}
public int getNumberOfDoors() {
return numberOfDoors;
}
}
public class CarTest {
public static void main(String[] args) {
Car myCar = new Car("ABCD123", 4);
Day dayOfWeek = Day.MONDAY;
ProhibitDriving goOut = myCar;
boolean canDrive = !goOut.prohibitDriving(dayOfWeek);
if (canDrive) {
System.out.println("You can drive your car today!");
} else {
System.out.println("You cannot drive your car today!");
}
}
}
```
上述代码中,我们定义了一个抽象类`Vehicle`,其中包含了车牌号属性和一个`ProhibitDriving`接口,以及一个实现了该接口的`prohibitDriving`方法。接下来,我们定义了一个非抽象类`Car`,该类继承了`Vehicle`类并实现了自己的构造方法和`getter`方法。最后,我们定义了一个测试类`CarTest`,在该类中,我们创建了一个`myCar`对象,并通过`ProhibitDriving`接口变量`goOut`调用了`prohibitDriving`方法来判断今天是否可以开车。