import org.aspectj.testing.Tester; 
public class IntroducingMethodsOnPlusImplementedInterfaces {
    public static void main(String[] args) {
        new IntroducingMethodsOnPlusImplementedInterfaces().realMain(args);
    }
    public void realMain(String[] args) {
        new D().f();
    }
    static {
        Tester.expectEvent("D.f");
    }
}

class D extends Thread {}
//static
aspect A {
    static interface I {}
    //(subtypes(Thread)) +implements I;
    //declare parents: (subtypes(Thread)) implements I;
    declare parents: Thread+ implements I;
    public void I.f() { Tester.event("D.f"); }
}