Warum können Java-Klassen keine abstrakten Felder haben, wie sie abstrakte Methoden haben können?
Zum Beispiel: Ich habe zwei Klassen, die dieselbe abstrakte Basisklasse erweitern. Diese beiden Klassen haben jeweils eine identische Methode, mit Ausnahme einer String-Konstante, die zufällig eine Fehlermeldung enthält. Wenn Felder abstrakt sein könnten, könnte ich diese Konstante abstrakt machen und die Methode in die Basisklasse hochziehen. Stattdessen muss ich eine abstrakte Methode erstellen, die getErrMsg()
in diesem Fall aufgerufen wird, die den String zurückgibt, diese Methode in den beiden abgeleiteten Klassen überschreiben und dann die Methode aufrufen (die jetzt die abstrakte Methode aufruft).
Warum konnte ich das Feld nicht gleich abstrakt machen? Könnte Java entwickelt worden sein, um dies zu ermöglichen?