Java重載的一個例子


 1 class Human{
 2 }
 3 
 4 class Man extends Human{
 5 }
 6 
 7 class Woman extends Human{
 8 }
 9 
10 public class Test {
11 
12         void show(Human h) {
13                 System.out.println("Human");
14         }
15 
16         void show(Man m) {
17                 System.out.println("Man");
18         }
19 
20         void show(Woman w) {
21                 System.out.println("Women");
22         }
23 
24         public static void main(String  [] argv) {
25                 Human a = new Man();
26                 Human b = new Woman();
27                 Human c = new Human();
28                 Test test = new Test();
29                 test.show(a);
30                 test.show(b);
31                 test.show(c);
32         }
33 }

以上程序的輸出應該全是"Human",首先確定這是重載而沒有涉及到多態,程序會根據調用方法的參數類型來確定應該調用哪一個方法,這是在編譯期間就需要確定的,而以上的a,b,c的靜態類型(聲明類型)是唯一能在編譯時確定的,所以會有這樣的輸出,如果注釋掉第一個show方法,編譯則不能通過,提示找不到方法的原型。


免責聲明!

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



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