談談我對多型的理解
阿新 • • 發佈:2018-11-10
什麼是多型
多型是面向物件的特性之一,從字面上理解,多型就是指一個物件在執行是會有多種形態,就比如可以說student是一個person,也可以說student是一個object。
我們來看一個經典的例子:
Service service=new ServiceImpl();
我們經常看到這樣的程式碼,這就是多型的一種表現。
為什麼要多型
多型可以讓程式碼更加靈活,再舉一個例子:
List<String> list=new ArrayList<>();
這也是我們常寫的一句程式碼,為什麼不把List換成ArrayList?
一個很大的原因就是要考慮到以後的情況,假設以後ArrayList已無法滿足我們軟體的需求,這時候可能需要一個和ArrayList相似的類來替代它,那麼如果我們直接面向具體的類進行程式設計,以後的可維護性肯定會變差,所以多型能使我們面向抽象進行程式設計,使程式碼更加地靈活。
多型的缺點
那麼多型肯定會有它的缺點,那就是我們無法呼叫我們具體類的方法。什麼意思?舉個例子:
假設我們的Person類有一個speak方法,Student類是從Person類繼承過來的,它有一個額外的方法study。
那麼我們直接這樣:
Person student=new Student();
很明顯,這樣我們就失去了study這個方法。