Java中方法重寫的應用


方法重寫的應用

  當子類需要父類的功能,而功能的主體子類還有自己特有的內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類自己特有的內容。

 1 /*
 2  方法重寫:子類中出現了和父類中方法聲明一模一樣的方法(方法名、參數列表和返回值類型都一樣),也被稱為方法覆蓋、方法復寫。  3     
 4  方法重載:本類中出現的方法名一樣,參數列表不同,與返回值無關的方法。  5 
 6  子類的成員方法名稱和父類中的成員方法名稱一樣時,這個怎么訪問呢?  7  通過子類對象訪問一個成員方法的查找順序:  8  1.在子類的成員方法中找,有就使用。  9  2.在父類的成員方法中找,有就使用。 10  3.都找不到,就報錯。 11         
12  方法重寫的應用: 13  當子類需要父類的功能,而功能的主體子類還有自己特有的內容時,可以重寫父類中的方法, 14  這樣,即沿襲了父類的功能,又定義了子類自己特有的內容。 15         
16  案例: 17  A:定義一個手機類。 18  B:通過研究,我發明了一個新手機,這個手機的作用是在打完電話后,可以聽天氣預報。 19  按照我們基本的設計,我們把代碼給寫出來了。 20  但是呢?我們又發現新手機應該是手機,所以,它應該繼承自手機。 21  其實這個時候的設計,並不是最好的。 22  因為手機打電話功能,是手機本身就具備的最基本的功能。 23  所以,我的新手機是不用在提供這個功能的。子類注釋掉打電話的功能, 24  但是,這個時候,打電話功能就沒有了。這個不好。 25  最終,還是要加上這個功能。 26  由於它繼承了手機類,所以,我們就直接使用父類的功能即可。 27  那么,如何使用父類的功能呢?通過super關鍵字調用即可。 28 */
29 
30 class Phone { 31     public void call(String name) { 32         System.out.println("給"+name+"打電話"); 33  } 34 } 35 
36 class NewPhone extends Phone { 37     public void call(String name) { 38         //System.out.println("給"+name+"打電話");
39         super.call(name);//繼承父類的功能
40         System.out.println("可以聽天氣預報了");//子類自己特有的功能。
41  } 42 } 43 
44 class ExtendsDemo9 { 45     public static void main(String[] args) { 46         NewPhone np = new NewPhone(); 47         np.call("林青霞"); 48  } 49 }


免責聲明!

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



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