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 A 15 System.out.println(a1.show(c)); // ② A and A 16 System.out.println(a1.show(d)); // ③ A and D 17 System.out.println(a2.show(b)); // ④ B and A 18 System.out.println(a2.show(c)); // ⑤ B and A 19 System.out.println(a2.show(d)); // ⑥ A and D 20 System.out.println(b.show(b)); // ⑦ B and B 21 System.out.println(b.show(c)); // ⑧ B and B 22 System.out.println(b.show(d)); // A and D 23 } 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翻译翻译结果
搜索
复制
时间: 2024-10-16 23:32:10