Это , а не шаблон проектирования.
Интерфейс очевиден: каждый класс, реализующий интерфейс, должен реализовывать свои методы - без вопросов.
АннотацияКласс может обеспечить поведение по умолчанию для каждого метода, если пожелает.Так что да, это для удобства разработчиков подкласса.Помните, что тот, кто пишет абстрактный класс, скорее всего, предоставит хотя бы один конкретный подкласс, поэтому преимущества ему накапливаются.
Методы получения и установки не имеют значения.Любая хорошая IDE может сгенерировать их для вас.Эта функция более понятна для сложного поведения по умолчанию.
Посмотрите, как Джошуа Блох с большим успехом использовал эту идиому в пакете java.util
, когда разрабатывал Collection API.