Pourquoi les classes Java ne peuvent-elles pas avoir de champs abstraits comme elles peuvent avoir des méthodes abstraites?
Par exemple: j'ai deux classes qui étendent la même classe de base abstraite. Ces deux classes ont chacune une méthode identique à l'exception d'une constante String, qui se trouve être un message d'erreur, en leur sein. Si les champs pouvaient être abstraits, je pourrais créer cette constante abstraite et faire remonter la méthode dans la classe de base. Au lieu de cela, je dois créer une méthode abstraite, appelée getErrMsg()
dans ce cas, qui renvoie la chaîne, remplacer cette méthode dans les deux classes dérivées, puis je peux extraire la méthode (qui appelle maintenant la méthode abstraite).
Pourquoi ne pourrais-je pas simplement faire le champ abstrait pour commencer? Java aurait-il été conçu pour permettre cela?