Если класс, реализующий interface
, является классом abstract
, @Override
полезен для гарантии того, что реализация предназначена для метода interface
; без @Override
класс abstract
просто скомпилируется нормально, даже если сигнатура метода реализации не соответствует методу, объявленному в interface
; несоответствующий метод interface
останется нереализованным.
Документ Java, цитируемый @ Zhao
Метод переопределяет или реализует метод, объявленный в супертипе
явно относится к суперклассу abstract
; interface
нельзя назвать супертипом.
Таким образом, @Override
является избыточным и не имеет смысла для interface
реализаций методов в конкретных классах.