Ich bin nicht vertraut mit enum und möchte fragen, ob ich eine enum in eine abstrakte Methode setzen und in einer anderen Klasse überschreiben kann? Hier ist ein Beispiel, ich arbeite mit:Java - Kann in einem Parameter einer abstrakten Methode enumerieren
Ich habe viele Unterklassen, die die abstrakte Klasse erweitern, sie haben jeweils ihre eigenen Unterbefehl als Aufzählungstyp. Der Aufzählungstyp hat eine Int-ID und einen String-Namen.
Auch eine Methode übernimmt den Unterbefehl und ändert die Eingabe-UI-Basis für den ausgewählten Unterbefehl.
public class CommandOne extends CommandClass{
........
public void updateUIBySubCmd(SubCommand subCmd){
/*Do Something*/
}
private enum SubCommand{
SubCmd1 (ID1, Name1),
SubCmd2 (ID2, Name2),
........
}
}
Ich habe eine abstrakte Klasse, die durch die obige Unterklasse erweitert wird, es keine ENUM besteht, sondern nur ein paar Funktion außer Kraft von der Unterklasse.
Die Frage ist, kann ich Folgendes tun und haben die Methode updateUIBySubCmd abstrakte mit einem Aufzählungstyp geworden? Wenn es erlaubt ist, wie kann ich es erreichen?
public abstract class CommandClass{
..........
public abstract void updateUIBySubCmd(Enum x);
}
Sie haben den Code, warum es nicht versuchen? – John3136
Da gibt es mir den Fehler: Methode überschreibt nicht oder implementieren Sie eine Methode von einem Supertype – Allen
, wenn die Enums eine gemeinsame Schnittstelle implementieren, können Sie dies tun. –