1. 程式人生 > >談談我對多型的理解

談談我對多型的理解

什麼是多型

多型是面向物件的特性之一,從字面上理解,多型就是指一個物件在執行是會有多種形態,就比如可以說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這個方法。