JAVA面向對象學習之方法重寫和final關鍵字
21.1 方法重寫的概述及應用
1、概念:方法重寫是指子父類出現了相同的方法。
2、方法重寫的應用:當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法。這樣,即繼承了父類的功能,又定義了子類特有的內容。
案例演示如圖1所示:
說明:iOS7系統Siri只具有speak English的功能,升到iOS8系統後,它既會英文,也會說中文,也就是繼承了7的功能,又新增了中文的功能。
3、方法重寫的注意事項:
3.1 父類中的私有方法不能被重寫,因為子類無法繼承父類的私有方法;
3.2 子類重寫父類方法時,訪問權限不能更低,最好是保持一致;
3.3 父類靜態方法,子類也必須通過靜態方法進行重寫,
3.4 子類重寫父類時,聲明也建議要一樣。
案例演示如圖2所示:
4、方法重寫和重載的區別:
overload可以改變返回值類型,只看參數列表
方法重寫:子類中出現了和父類中方法聲明相同的方法,與返回值類型有關,返回值是一致;
方法重載:本類中出現的方法名一樣,參數列表不同的方法。與返回值類型無關。
子類對象調用方法時,先找子類本身,再找父類。
案例練習1演示如3所示:
說明:本類中調用name,可直接用name調用;
但子類調用父類中的姓名時,可用getName(),也可用this.getName(),但不能直接用name調用。
案例練習2使用繼承實現貓和狗的案例,演示如4所示:
21.2 final關鍵字
1、final概述:指最終的意思。
2、final修飾的特點:
2.1 修飾類,類不能被繼承;
2.2 修飾變量,變量就變成了成了常量,只能被賦值一次;
2.3 修飾方法,方法不能被重寫。
案例演示如圖5所示:
3、final修飾局部變量:
案例演示機解析如圖6所示:
3.1 final修飾變量的初始化時機:
a.在顯示初始時;
b.在對象構造完畢前即可。
案例演示如圖7所示:
感謝支持,我是小區日記本,喜歡點關注。每天根據小編的學習,持續分享學習的筆記與心得。
案例代碼截圖僅包含部分,小編已整理了全部代碼並分享,可免費領取,私信 回覆2個字:代碼
閱讀更多 小區日記本 的文章