12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import org.aspectj.testing.Tester;
-
- public class MethodConflictsCP {
- public static void main(String[] args) {
- C c = new C();
- Tester.checkEqual(c.ma(), "C");
- Tester.checkEqual(c.m1(), "I1-C");
- Tester.checkEqual(c.m2(), "I2-C");
-
- I1 i1 = c;
- Tester.checkEqual(i1.m2(), "I2-C");
-
- Tester.checkEqual(new CO().toString(), "IO");
- }
- }
-
- class C implements I1, I2 {
- public String ma() { return "C"; }
- //private void mp() { }
- }
-
- interface BaseI {
- public String m1();
- public String m2();
- }
-
- interface I1 extends BaseI {
- static aspect BODY {
- public String I1.m1() { return "I1-" + ma(); }
- public abstract String I1.ma();
- }
- }
-
- interface I2 extends BaseI {
- static aspect BODY {
- public String I2.m2() { return "I2-" + ma(); }
- public abstract String I2.ma();
- private String I2.mp() { return "I2"; }
- }
- }
-
- interface IO {
- static aspect BODY {
- public String IO.toString() { return "IO"; }
- }
- }
-
- class CO implements IO {
- }
|