Java中多态的实例

 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 }

 

posted @ 2015-06-03 12:43  Fury_Fox  阅读(5031)  评论(0)    收藏  举报