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