Можно понять этот вопрос по-разному. Если имеется в виду,
передается ли аннотация класса-родителя классу-наследнику, ответ – по умолчанию нет. Но наследование можно включить, если на объявлении аннотации поставить мета-аннотацию
@Inherited. Это работает только для классов, переопределенные методы нужно аннотировать заново.
Другой возможный смысл вопроса –
наследование самих типов-аннотаций. Аннотация, как класс или интерфейс представляется в системе ссылочным типом, она тоже компилируется в
.class-файл. Вы можете создать переменную с типом, скажем,
java.lang.Override.
Но в отличие от других ссылочных типов, объявление аннотации (
@interface)
не может иметь секций
extends или
implements. Это ограничение добавлено просто
чтобы не усложнять систему типов. В скомпилированном коде все типы-аннотации – это интерфейсы, унаследованные от
Annotation.