import static java.lang.annotation.ElementType.*;
import java.lang.annotation.*;

public aspect InterType3 {

  @Retention(RetentionPolicy.RUNTIME)
  @Target({METHOD})
  public @interface MyAnnotation {
  }

  public static aspect AroundMethod {
    Object around() : execution(@MyAnnotation * * (..)) {
      System.out.println(thisJoinPointStaticPart);
      return proceed();
    }   
  }

  public interface InterTypeIfc {}

  // (1)
  @MyAnnotation
  public void InterTypeIfc.m1(int p1, String p2) {}

  // (2)
  public void InterTypeIfc.m1(int p1, int p2) {}

  // (3)
//  @MyAnnotation
//  public void m1(int p1) {}

  // (4)
//  public void m1(int p1, int p2) {}


  public static void main(String []argv) throws Exception {
    new Foo().m1(1,"a");
    new Foo().m1(1,2);
  }

  declare parents: Foo implements InterTypeIfc;
 
  static class Foo {
  }
}