DAY08總結復習
面向物件之多型
1. 前提:繼承+重寫
2. 口訣1:父類參考指向子類物件
解釋:父型別別的參考型別變數保存的是子型別別的物件的地址值
2.口訣2:編譯看左邊,運行看右邊
解釋:編譯時要看父類是否定義了這個資源,運行時使用的是子類的功能
3.資源使用情況
- 成員變數使用的是父類的
- 成員方法使用的是父類的方法定義,子類的方法體
- 如果多型物件呼叫的是子類沒有重寫過的方法,方法定義與方法體使用的都是父類的,所以這個不符合多型的前提,直接使用純純的父類物件呼叫即可
- 靜態資源屬于類資源,隨著類的加載而加載,只會加載一次,優先于物件進行加載,可以通過類名直接呼叫,被全域所有物件共享,所以靜態不存在重寫的現象,在哪個類定義,就屬于哪個類的資源
- 我們現在學習的多型,把自己看作是父型別別,參考“花木蘭替父從軍”
例外
1. 例外的繼承結構
例外層次結構中的根是Throwable
Error:目前我們編碼解決不了的問題
Exception:例外
編譯例外:未運行代碼就報錯了,強制要求處理
運行時例外:運行代碼才報錯,可以通過編譯,不強制要求處理
2.例外的解決方案
- 捕獲處理try-catch–自己解決
- 向上拋出throws–交給別人解決
- 不能直接把例外拋給main(),因為呼叫main()是JVM,沒人解決了

抽象abstract
1.抽象類
- 抽象類是被abstract修飾的類
- 抽象類對其中的方法不做限制:全普/全抽/半普半抽
- 抽象類不可以實體化–創建物件
- 如果一個子類繼承了一個抽象父類,有兩種解決方案:
繼續抽象 / 實作抽象父類的所有抽象方法,變成普通子類
2.抽象方法
- 抽象方法是被abstract修飾的方法
- 抽象方法沒有方法體{},以分號結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293225.html
標籤:其他
