天天看點

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 }      

我的GitHub位址:

https://github.com/heizemingjun

我的部落格園位址:

http://www.cnblogs.com/chenmingjun

我的螞蟻筆記部落格位址:

http://blog.leanote.com/chenmingjun

Copyright ©2018 黑澤明軍

【轉載文章務必保留出處和署名,謝謝!】