Posso estender uma classe e substituir o tipo de enumeração fechada?
Se eu tiver uma classe que contenha umenum
type, posso estender essa classe e substituir o tipo de enum ou adicionar mais constantes a esse enum? O objetivo é que o usuário possa chamargetColor()
sem saber se o objeto dinâmico é da classe base ou da classe derivada. Por exemplo
public class Car {
private String name;
private CarColors color;
public enum CarColors {
BLUE,
GREEN
}
public Car(CarColors c) {
color=c;
}
public CarColors getColor() {
return color;
}
}
public class RacingCar extends Car {
private CarColors color;
public RacingCar(CarColors c) {
color=c;
}
public enum CarColors {
BLUE,
GREEN,
RED
}
@Override //?????
public CarColors getColor() {
return color;
}
}
e principalmente:
Car racingCar = new RacingCar();
CarColors color = racingCar.getColor();