我有以下枚举:
public enum CarManufacturer {
VOLKSWAGEN, CHEVROLET, DODGE, ...
}
public enum PlaneManufacturer {
LOCKHEED, AIRBUS, BOEING, ...
}
和以下父类(super class):
public class Vehicle {
int size;
int weight;
...
}
我想做的是在车辆内部有一个明确的制造商,这样每个收到 Vehicle 类的人都知道它有一个制造商。
例如:
public class Vehicle {
int size;
int weight;
int manufacturer;
abstract int getManufacturer () {};
}
public class Plane extends Vehicle {
PlaneManufacturer manufacturer;
PlaneManufacturer getManufacturer () { return this.manufacturer; }
...
}
public class Car extends Vehicle {
CarManufacturer manufacturer;
CarManufacturer getManufacturer () { return this.manufacturer; }
...
}
执行此操作的最佳方法是什么?
最佳答案
创建一个 Manufacturer
接口(interface),并让您的枚举实现该接口(interface)。
public interface Manufacturer {}
public enum CarManufacturer implements Manufacturer {
VOLKSWAGEN, CHEVROLET, DODGE, ...
}
public enum PlaneManufacturer implements Manufacturer {
LOCKHEED, AIRBUS, BOEING, ...
}
然后在您的 Vehicle
类中,您可以:
public class Vehicle {
int size;
int weight;
Manufacturer manufacturer;
Manufacturer getManufacturer () {
return manufacturer;
};
}
关于Java 覆盖不同类型的类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926671/