1. 程式人生 > >Java中方法重寫的應用

Java中方法重寫的應用

style void blog gpo sde 一模一樣 main 直接 body

方法重寫的應用

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

 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 }

Java中方法重寫的應用