方法重寫的應用
當子類需要父類的功能,而功能的主體子類還有自己特有的内容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類自己特有的内容。
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/chenmingjunCopyright ©2018 黑澤明軍
【轉載文章務必保留出處和署名,謝謝!】