J
Joltan
Gast
Habe hier ein kleines Verständnisproblem bezüglich Vererbung:
bringt mir eine ClassCastException - obwohl beide Klassen von 'baseServerClass' abstammen:
Wenn es so nicht geht, wie kann ich dann eine Klasse in die andere und zurück überführen? Mir geht es darum, daß die beiden Klassen später etwa zwei Duzend innere Variablen von 'baseServerClass' erben, aber völlig verschiedene Methoden implementieren werden (ein Interface welches nur Konstanten erlaubt ist daher nicht die Lösung). Gibt's da keine einfachere (und weniger aufwendige) Lösung als Wert für Wert über eine spezielle Importmethode zu übertragen?
Code:
public static void main(String[] args) {
// TODO code application logic here
ServerList sl = new ServerList();
ListServer ls = new ListServer();
QueryServer qs = new QueryServer();
qs = (QueryServer)((baseServerClass)ls);
}
bringt mir eine ClassCastException - obwohl beide Klassen von 'baseServerClass' abstammen:
Code:
public class baseServerClass {
public long ID;
public baseServerClass() {
}
}
Code:
public class QueryServer extends baseServerClass {
public QueryServer() {
}
}
Code:
public class ListServer extends baseServerClass {
public String alias;
public static long newID = 0;
public ListServer() {
this.ID = ++newID;
}
}
Wenn es so nicht geht, wie kann ich dann eine Klasse in die andere und zurück überführen? Mir geht es darum, daß die beiden Klassen später etwa zwei Duzend innere Variablen von 'baseServerClass' erben, aber völlig verschiedene Methoden implementieren werden (ein Interface welches nur Konstanten erlaubt ist daher nicht die Lösung). Gibt's da keine einfachere (und weniger aufwendige) Lösung als Wert für Wert über eine spezielle Importmethode zu übertragen?