public class Xxx{
 public interface A{
  void AH();
 }
 public interface B extends A{
  void BH();
 }
 public static abstract class C{
  abstract void CH(A a);
 }
 private static class D extends C{
  @Override
  void CH(B a) {
   //Xxx.D のメソッド CH(Xxx.B) はスーパータイプ・メソッドをオーバーライドまたは実装する必要があります
  }
 }
}

以上のコードでオーバーライドが認識されていないのですが
何故このコードは駄目なのでしょうか。

インターフェイスBはインターフェイスAを継承しているので
メソッドAHがある事は保証されると思います。

javaは1.6です