什麽是多態?
可以這麽回答:
父類引用
引用子類對象
父類和子類有同名的覆蓋方法
通過父類引用調用這個重寫的方法的時候。多數的話就可以稱為多態,單數可以說運行時綁定。
使用多態有什麽好處?
類調用者對類的使用成本進壹步降低
封裝是讓類的調用者不需要知道類的實現細節,多態能讓類的調用者連這個類的類型是什麽都不必知道,只需要知道這個對象具有某個方法即可。因此,多態可以理解成是封裝的更進壹步,讓類調用者對類的使用成本進壹步降低。
能夠降低代碼的“圈復雜度”,避免使用大量的if-else
多態在代碼中的體現:
輸出結果:
貓吃魚
貓吃魚(因為描述的是真正的是壹只貓)
拓展:
多態性:同壹操作作用於不同的對象,可以用不同的解釋,產生不同的執行結果,這就是多態性。
多態性通過派生類覆寫基類中的虛函數的方法來實現。
多態性分為兩種,壹種是編譯時的多態性,壹種是運行時的多態性。
編譯時的多態性:編譯時多態是通過重載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的參數,返回的類型等信息決定實現何種操作。
運行時的多態性:運行時的多態性就是指直到系統運行時,才根據實際情況決定實現何種操作。