In genere, dal momento che stiamo lavorando in java e di solito si presta la progettazione OO, è possibile ottenere questa funzionalità tramite l'estensione. Tuttavia, enum estende java.lang.Enum implicitamente e pertanto non può estendere un'altra classe.
Ciò significa che l'estensibilità per le enumerazioni può essere ricavata da una fonte diversa.
Joshua Bloch aggiunge questo in Java efficace: seconda edizione nell'elemento 34, quando presenta un modello di interfaccia condiviso per enumerazioni. Ecco il suo esempio del pattern:
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
},
TIMES("*") {
public double apply(double x, double y) { return x * y; }
},
DIVIDE("/") {
public double apply(double x, double y) { return x/y; }
}
Questo è quanto di più vicino si può arrivare a stato condiviso quando si tratta di enumerazioni. Come ha detto in precedenza Johan Sjöberg, potrebbe essere semplicemente più semplice combinare semplicemente le enumerazioni in un'altra enumerazione.
Buona fortuna!
perché dovresti estendere un enum? – Woot4Moo