Java重写具有不同类型的类成员
我有以下列举:Java重写具有不同类型的类成员,java,inheritance,overriding,Java,Inheritance,Overriding,我有以下列举: public enum CarManufacturer { VOLKSWAGEN, CHEVROLET, DODGE, ... } public enum PlaneManufacturer { LOCKHEED, AIRBUS, BOEING, ... } 以及以下超类: public class Vehicle { int size; int weight; ... } 我想做的是在车内有一个明确的制造商,这样每个接受车辆类的人都知
public enum CarManufacturer {
VOLKSWAGEN, CHEVROLET, DODGE, ...
}
public enum PlaneManufacturer {
LOCKHEED, AIRBUS, BOEING, ...
}
以及以下超类:
public class Vehicle {
int size;
int weight;
...
}
我想做的是在车内有一个明确的制造商,这样每个接受车辆类的人都知道它有一个制造商
例:
最好的方法是什么?创建一个
制造商
接口,并让您的枚举实现该接口
public interface Manufacturer {}
public enum CarManufacturer implements Manufacturer {
VOLKSWAGEN, CHEVROLET, DODGE, ...
}
public enum PlaneManufacturer implements Manufacturer {
LOCKHEED, AIRBUS, BOEING, ...
}
然后在车辆
类中,您可以:
public class Vehicle {
int size;
int weight;
Manufacturer manufacturer;
Manufacturer getManufacturer () {
return manufacturer;
};
}
每个枚举都隐式地从枚举抽象超类扩展而来。因此,您可以在车辆超类中将属性引用为Enum,如中所示:
public class Vehicle {
int size;
int weight;
Enum manufacturer;
abstract Enum getManufacturer () {};
}
但是这并不能阻止某人在制造商应该在的地方使用他们的enum
Fruit
。并且您希望在返回的对象上有类似于manufacture
的方法,而enum没有。
public class Vehicle {
int size;
int weight;
Enum manufacturer;
abstract Enum getManufacturer () {};
}