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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM