亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP中的接口有什么意義?

PHP中的接口有什么意義?

繁星coding 2019-08-24 15:35:44
PHP中的接口有什么意義?接口允許您創建代碼,該代碼定義實現它的類的方法。但是,您無法向這些方法添加任何代碼。抽象類允許您執行相同的操作,同時向方法添加代碼?,F在,如果您可以使用抽象類實現相同的目標,為什么我們甚至需要接口的概念?我被告知它與OO理論有關,從C ++到Java,這就是PHP的OO基礎。這個概念在Java中有用但在PHP中沒有用嗎?它只是一種避免在抽象類中亂丟占位符的方法嗎?我錯過了什么嗎?
查看完整描述

3 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

我不了解其他語言,接口的概念是什么。但是對于PHP,我會盡力解釋它。請耐心等待,如果有幫助,請評論。

接口用作“契約”,指定一組子類的作用,但不指定它們是如何做的。

規則

  1. 接口無法實例化。

  2. 您不能在接口中實現任何方法,即它只包含方法的.signature而不包含詳細信息(正文)。

  3. 接口可以包含方法和/或常量,但不包含任何屬性。接口常量與類常量具有相同的限制。接口方法是隱式抽象的。

  4. 接口不能聲明構造函數或析構函數,因為這些是類級別的實現細節。

  5. 界面中的所有方法都必須具有公共可見性。

現在讓我們舉個例子。假設我們有兩個玩具:一個是狗,另一個是貓。

正如我們所知,狗吠和貓喵。這兩種方法有相同的說法,但具有不同的功能或實施方式。假設我們給用戶一個帶有發言按鈕的遙控器。

當用戶按下發言按鈕時,玩具必須說出來并不重要,無論是狗還是貓。

這是一個使用接口的好例子,而不是抽象類,因為實現是不同的。為什么?記得

如果需要通過添加一些非抽象方法來支持子類,則應使用抽象類。否則,接口將是您的選擇。


查看完整回答
反對 回復 2019-08-24
  • TVBK
    TVBK
    接口我也是一直搞不明白。。根據你的說法,我這樣理解對嗎? 小G負責寫 狗class,小M負責寫貓class 現在新增一個功能 我按按鈕它就叫。不論是 狗class 還是 貓class 都得繼承我這個專門負責叫的 接口 。 那接口是不是 這樣設計: // 動物叫接口 interface animalsCall { public function call(); } // 接口出來了 然后 小G 就開始負責在 狗class 里面寫 狗的叫聲 繼承動物叫接口 class Dog implements animalsCall { // 小狗看門。。。等 其他功能 public function porter(){} // 這是所有動物都必須會的一招 繼承了animalsCall接口 所以強制必須實現里面的方法call。 public function call(){} } // 接口出來了 然后 小M 也同時開工開始負責在 貓class 里面寫 貓的叫聲 同樣繼承 動物叫接口 class Cat implements animalsCall { // 小貓賣萌。。。等 其他功能 public function acting_cute(){} // 同樣的這是所有動物都必須會的一招 繼承了animalsCall接口 所以強制必須實現里面的方法call。 public function call(){} } // 然后 現在 有個功能 是點擊按鈕 就叫 function call(string $type){ if($type == Dog){ new Dog()->call(); }elseif($type == 'cat'){ new Cat()->call(); } } 這樣理解對嗎? 如果這樣理解的話: 1. 接口只是為了統一方法名?調用起來不會 左一個dogCall 右一個catCall? 2. 作用同1。。。 實在想不出這樣還有其他好處沒-.-! 還請大佬稍微指點下 (づ ̄3 ̄)づ╭?~
?
森林海

TA貢獻2011條經驗 獲得超2個贊

接口就像你的基因。

抽象類就像你的父母一樣。

它們的目的是遺傳的,但在抽象類和接口的情況下,繼承的內容更具體


查看完整回答
反對 回復 2019-08-24
  • 3 回答
  • 0 關注
  • 1574 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號