Чому класи Java не можуть мати абстрактні поля, як вони можуть мати абстрактні методи?
Наприклад: У мене є два класи, які розширюють один і той самий абстрактний базовий клас. Кожен із цих двох класів має ідентичний метод, за винятком рядкової константи, яка, як трапляється, є повідомленням про помилку. Якби поля могли бути абстрактними, я міг би зробити цю константу абстрактною і перетягнути метод в базовий клас. Натомість я маю створити абстрактний метод, викликаний getErrMsg()
у цьому випадку, який повертає String, замінює цей метод у двох похідних класах, і тоді я можу витягнути метод (який тепер викликає абстрактний метод).
Чому я не міг просто зробити поле абстрактним для початку? Чи могла Java бути розроблена, щоб дозволити це?