Я только заметил, что java.util.Observable - это конкретный класс. Поскольку цель Observable должна быть расширена, это кажется мне довольно странным. Есть ли причина, почему это было реализовано таким образом?
Я нашел эту статью, в которой говорится, что
Наблюдаемый - это конкретный класс, поэтому класс, вытекающий из него, должен быть определен заранее, поскольку Java допускает только одно наследование.
Но это на самом деле не объясняет это мне. Фактически, если Observable были абстрактными, пользователь был бы вынужден определить класс, вытекающий из него.