Annotationの継承と複数指定を同時に実現したい

JavaのAnnotationって、.NETのAttrubiteと違って継承できないのよね。
あと、同じAnnotationを複数適用したいというか、.NETで言うところのAttributeUsage(AllowMultiple=true)もできないっと。
Proxyを使った疑似継承みたいなことは出来たり、同じAnnotationをAllowMultipleしたいだけならこういう書き方もあるわけですが。

public @interface Hoge {
    ...
}

public @interface Hoges {
    Hoge[] value();
}

@Hoges({
    @Hoge( ... ),
    @Hoge( ... )
})
public class Target {
    ...
}

でも、この2つを同時に満たしたい時はどうすれば良いんでしょ(´・ω・`)
BaseAnnotationを継承したAAnnotation、BAnnotation、CAnnotationを、それぞれ複数個をターゲットに対して指定し、これらをまとめてBaseAnnotationの配列として取得したい、みたいなことをやりたいわけですが。

// やりたいことイメージ
@AAnnotation(name="a1", parama="...")
@AAnnotation(name="a2", paramb="...")
@BAnnotation(name="b1", paramb="...")
@BAnnotation(name="b2", paramc="...")
@CAnnotation(name="c1", paramc="...")
public class Target {
    ...
}


// まとめて取得
BaseAnnotation[] annotations = getBaseAnnotations( Target.class );

ん〜(´ー`)