package source.structural; import static source.structural.globalclasses.a.ClassWithStaticMethod.aStaticMethod; import static jsweet.util.Globals.$export; import def.js.Array; import source.structural.globalclasses.a.ClassWithStaticMethod; public class DefaultMethods implements IDefaultMethods { static Array trace = new Array(); public static void main(String[] args) { new DefaultMethods().m(""); new DefaultMethods().m2(); $export("trace", trace.join()); } @Override public void m1() { trace.push("m1"); } @Override public void m2() { DefaultMethods.trace.push("m2-overriden"); } } interface IDefaultMethods { default void m(T t) { DefaultMethods.trace.push("m"); aStaticMethod(); m1(); } default void m2() { DefaultMethods.trace.push("m2"); ClassWithStaticMethod.aStaticMethod(); } void m1(); }