寫代碼時常常會碰到這樣一種狀況:想生成不一樣實例,那就須要作多重if判斷或者switch下n個case。編程
好比家畜這一種類,根據狀況我可能須要一隻鴨,也可能須要一頭牛:bash
switch(家畜):
case 鴨:
提走一隻鴨
break
case 牛:
牽走一頭牛
break
...
...
複製代碼
這樣的問題是每次追加一種家畜就須要追加新的處理語句,也頗有可能在其餘各處的判斷語句也要一塊兒改。ui
代碼量增長後,這真的是一個很是很是麻煩的事情。編碼
面向對象的程序設計理論中,多態是指:spa
同一操做做用於不一樣的類的實例時,將產生不一樣的執行結果。即不一樣類的對象收到相同的消息時,也能獲得不一樣的結果。設計
多態替換的是面向過程編程裏的switch或者多重if判斷,讓擴展變得更靈活,不須要多處改動。code
不一樣的家畜咱們就建立成不一樣的類,而後全都繼承自一個base類,好比家畜類。對象
根據具體的狀況,咱們須要獲取的是鴨類的實例,也多是牛類的實例,這個就看具體的狀況。以後則調用家畜類裏的方法,或者本身定義的方法便可。繼承
這樣就不須要每次都重複作一次switch判斷或者if判斷。it
好比:
牛類實例 執行方法:檢驗
鴨類實例 執行方法:檢驗
(檢驗這個方法,則是它們共同的父類家畜類定義的)
複製代碼