Class(類別)和 Interface(介面)是物件導向程式設計中的基本概念,它們在 PHP 中有明確的不同之處:
宣告屬性:
Class:在類別中,你可以宣告屬性(也就是變量)。這些屬性可以有不同的訪問修飾符,如 public、protected 或 private,以控制從類別外部的訪問權限。
Interface:介面不能宣告屬性。它們是用來定義公共方法的簽名,但不存儲任何數據。
實例化:
Class:類別可以被實例化,意味著你可以使用 new 關鍵字創建它的一個對象。
Interface:介面不能被實例化。它們是不能直接創建對象的藍圖。介面是用來被類別實現(implement),類別必須提供介面中定義的所有方法的具體實現。
實作方法:
Class:類別可以包含有具體實作的方法。這意味著類別中的方法可以有其功能的具體代碼塊。
Interface:介面只能定義方法的簽名,而不能包含方法的實作。換句話說,介面中的所有方法都是抽象的,沒有方法體,它們必須在實現了介面的類別中被具體實作。
總結來說,類別是對象的具體藍圖,包含屬性和方法的實作,可以被實例化為對象;而介面是一種約定,用來定義類別應遵循的方法簽名,不能直接實例化,也不包含任何方法的實作。介面允許多重繼承的概念,意味著一個類別可以實現多個介面,而類別則通常是單一繼承。