Aside from being usable as annotations, annotation types are ordinary interfaces. This is useful when reading annotations at runtime, because the annotation can then be represented as an instance of the annotation type.
As a side effect of this implementation choice, you can extend or implement them like any other interface. This is completely independent of using this type as annotation. Since this means the same type would be used for two different things (as annotation type and ordinary interface), such usage would likely violate separation of concerns, and is uncommon. However, from a language point of view, the semantics are clear and not dangerous, so there is little reason to require the compiler to prevent this corner case from occuring.
ScopeClazzis a class, then this won't compile...TheScopeyour own interface?