Ответ 1
Итак, мой вопрос: если Annotation является интерфейсом, то как это могло бы быть расширяет класс Object и переопределяет его методы
Не совсем. Спецификация языка Java §9.2 говорит
Если интерфейс не имеет прямых суперинтерфейсов, , то интерфейс неявно объявляет метод члена
public abstract
m
с сигнатуройs
, тип возвратаr
иthrows
предложениеt
, соответствующее каждомуpublic
метод экземпляраm
с подписьюs
, тип возвратаr
иthrows
предложениеt
объявленном вObject
, если только метод с той же подписью, такой же возвращаемый тип, а совместимое предложениеthrows
явно объявлено интерфейс.
Итак, любой interface
получает эти методы.
Для Annotation
дизайнеры просто решили повторно объявить их в исходном коде, чтобы они могли документировать их поведение.