1.什麼是多態
同一操作,作用於不同的對象,可以有不同的解釋,產生不同的執行結果,就叫做多態
2.多態分類
編譯時多態、運行時多態
編譯時多態:也叫設計時多態,這種多態實際上就是方法重載
運行時多態:代碼在被運行時,系統根據調用該方法的實例的類型來決定選擇調用哪個方法,被稱爲運行時多態,體現在方法重寫
ps:區分編譯與運行,
當你一段代碼寫完之後一般會經歷兩個階段:
一、編譯階段
使用指令:javac
這個階段,JVM首先把代碼加載完成,然後開始檢查語法。如果出現語法錯誤則提示錯誤。這個階段提示的錯誤我們一般稱爲編譯器錯誤!
二、運行階段
使用指令:java
這個階段,JVM將執行java代碼,這個時期出現的錯誤我們一般稱爲運行期錯誤!
編譯器錯誤一般都是語法錯誤!運行期錯誤一般都是程序內部(或者程序邏輯)錯誤!
2.多態條件
編譯時多態,具體可看方法重載的概念
運行時多態,需要滿足三個條件:要有繼承(包括接口的實現)、要有重寫、父類引用指向子類對象
3.多態解釋
運行時多態的解釋:運行時多態是指程序中定義的引用變量所指向的具體類型和b.通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定.
4.多態好處
可替換,可拓展,靈活
接口性,多態是超類或者接口通過方法簽名,向子類提供了一個共同方法聲明,由子類來完善或者覆蓋它而實現的