1. 程式人生 > >第6周Java學習任務

第6周Java學習任務

alt game 技術 精簡 提高 粘貼 java學習 .com 例子

一.閱讀ManagerTest

1.UML圖 :

技術分享圖片

2.e.getSalary()到底是調用Manager類的還是Employee類的getSalary方法?

stuff[0]中存的是Manager對象,在調用e.getSalary()時,先調用的是Manager類中的getSalary方法,該方法中又含有調用父類的getSalary的方法,兩個都有調用

3.Manager類的構造函數使用super調用父類的構造函數實現了代碼復用,這樣有什麽好處?為什麽不把父類構造函數中的相關代碼復制粘貼到Manager的構造函數中,這樣看起來不是更直觀嗎?

實現了代碼的復用,讓代碼更精簡

4.該代碼中哪裏體現了多態的好處?請說明。

在Manager類中的getSalary方法中只需要對父類方法進行處理即可。大大提高程序的可復用性

在Manager類中setBonus的方法擴充了Employee的內容,體現了多態的擴充性

二.閱讀GuessGame抽象類的設計與使用源代碼

2.1 Guess改造前代碼很簡單,而改造後的代碼使用了抽象類、抽象方法,看起來更復雜,這樣的改造到底有什麽好處呢?

改造為抽象類可以減少類與類之間的關聯度

2.2 GuessGame(改造後).java中有抽象方法與非抽象方法,你覺得抽象類中什麽樣的方法應該聲明為abstract,什麽方法不需要聲明為abstract直接實現即可。

對於抽象類的子類來講,每個子類都有同樣的一個行為,但是有不同的表現形式,這樣的方法就應該聲###明為抽象方法,讓子類們在自己的類實現,

對於那些抽象類的子類都有的一個行為且表現形式也相同的就不必聲明為抽象方法

2.3 重要:在這個例子中,變化的是什麽,不變的是什麽?嘗試結合abstract等概念進行說明。

變化的是使用抽象類和抽象方法以及繼承將main中的代碼分區在不同的地方實現,,不變的是代碼的最終執行結果,

第6周Java學習任務