php – 不同類別在實作 Interface 方法的時候,如何帶入為定義的參數

以下介紹兩種方法都可以達到目的

方法一、在類別的方法使用 NULL

如果希望在 getName() 的時候修改回傳 “A001 – Cary”,那麼可以在方法帶入的參數使用預設值 null 來符合介面定義,修改如下

方法二、透過 Setter

保持介面定義的方法樣式,但為了填入參數,我們必須要製作另外一個方法來寫入類別屬性,例如修改為

比較兩者

方法一,適合用在 只定義方法名稱 但不定義寫入的參數要長甚麼樣子。因為都直接定義在類別的方法中,因此比較一目了然。

方法二,因為 setId() 方法並沒有定義在 Interface,是依照各個類別自行應用。在不同類別,要使用 getName() 的時候,需要使用的寫法可能會不一樣。

不過,最怕的當然還是方法一、方法二的混用的狀況啦,因此定義 Interface 要實作 setter 與 getter,就很需要一些經驗了。

發表迴響