Dlaczego klasy Java nie mogą mieć pól abstrakcyjnych, tak jak mogą mieć metody abstrakcyjne?
Na przykład: Mam dwie klasy, które rozszerzają tę samą abstrakcyjną klasę bazową. Każda z tych dwóch klas ma metodę, która jest identyczna, z wyjątkiem stałej String, która jest komunikatem o błędzie. Gdyby pola mogły być abstrakcyjne, mógłbym uczynić tę stałą abstrakcją i przeciągnąć metodę do klasy bazowej. Zamiast tego muszę utworzyć metodę abstrakcyjną, wywoływaną getErrMsg()
w tym przypadku, która zwraca String, przesłania tę metodę w dwóch klasach pochodnych, a następnie mogę wywołać metodę (która teraz wywołuje metodę abstrakcyjną).
Dlaczego nie mogłem po prostu zrobić abstrakcji na początku? Czy Java mogła na to pozwolić?