They're useful for documenting what a class is supposed to be for. So think of it as a form of documentation. (This is a big part of the purpose of annotations in Java 5). Also, they are real types. So they become a real part of the inheritance tree.