1 public class cf { 2 3 /** 4 * 实际上这里涉及方法调用的优先问题, 5 * 优先级由高到低依次为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。 6 */ 7 public static void main(String[] args) { 8 9 A a1 = new A();10 A a2 = new B();11 B b = new B();12 C c = new C();13 D d = new D();14 System.out.println(a1.show(b)); // ① A and A15 System.out.println(a1.show(c)); // ② A and A16 System.out.println(a1.show(d)); // ③ A and D17 System.out.println(a2.show(b)); // ④ B and A18 System.out.println(a2.show(c)); // ⑤ B and A19 System.out.println(a2.show(d)); // ⑥ A and D20 System.out.println(b.show(b)); // ⑦ B and B21 System.out.println(b.show(c)); // ⑧ B and B22 System.out.println(b.show(d)); // A and D23 }24 }25 26 class A {27 public String show(D obj) {28 return ("A and D");29 }30 31 public String show(A obj) {32 return ("A and A");33 }34 }35 36 class B extends A {37 public String show(B obj) {38 return ("B and B");39 }40 41 public String show(A obj) {42 return ("B and A");43 }44 }45 46 class C extends B {47 }48 49 class D extends B {50 }
复制去Google翻译翻译结果
搜索
复制
原标题:Java中多态的实例
关键词:JAVA