首頁 資料庫 mysql教程 php 介面類別與抽象類別的實際作用

php 介面類別與抽象類別的實際作用

Dec 14, 2016 pm 03:05 PM

1.php 介面類別:interface 
其實他們的作用很簡單,當有很多人一起開發一個專案時,可能都會去呼叫別人寫的一些類別,那你就會問,我怎麼知道他的某個功能的實作方法是怎麼命名的呢,這時候php介面類別就起到作用了,當我們定義了一個介面類別時,它裡面的方式是下面的子類別必須實現的,例如:

複製程式碼如下:
interface Shop 

public function buy($gid); 
public function sell($gid); 
public function view($gid); 
}

public function view($gid); 

}


我定義了一個介面方法:?買(buy),賣(sell),看(view),那麼繼承此類的所有子類別都必須實現這3個方法少一個都不行,如果子類別沒有實現這些話,就無法運作。實際上介面類別說白了,就是一個類別的模板,一個類別的規定,如果你屬於這類,你就必須遵循我的規定,少一個都不行,但是具體你怎麼去做,我不管,那是你的事,如:

複製代碼代碼如下:
class BaseShop implements Shop 

public function buy($gid) 

echo('你購買了ID為:'.$gid.'的商品');

public function sell($gid) 

echo('你賣了ID為:'.$gid.'的商品'); 

public function view($gid)); 

public function view($gid)查看了ID為:'.$gid.'的商品'); 


}

你想想,在一個多人合作的大項目裡面,有了接口類是多麼的方便,這樣你就不用去問別人,你的某某功能的方法名稱是什麼了,當然如果你們喜歡這樣我也沒有辦法。 

結論 : 介面類別是一個類別的領導者,指明方向,子類別必須完成它指定方法。

2.php 抽象類別: abstract 
其實抽象類別和介面類別有一部分很像,記得在哪裡看見這樣一句話,抽象類別就把類別的部分抽出來,這句話看上去很搞笑,其實它說出了抽象類別的真理,抽象類別的作用是,當你發現你的很多類別裡面用很多方法你不斷的在重複寫,那你就可以考慮使用抽象類別了,你可能會說「我不是可以重寫一個類每個公共類我個實例化一個這個公共類,調用相同的方法就可以了”,這裡是可以,實際上抽象類做的工作也就是這個,不過他省去了你實例化的這個步驟,讓你就像直接呼叫本類方法一樣方便,而且你還可以重載這個方法。如:

複製程式碼如下:
abstract class BaseShop 

public function buy($gid) 

echo('你購買了ID為:'.$gid.'的商品'); function sell($gid) 

echo('你賣了ID為:'.$gid.'的商品'); 

public function view($gid) 
{ :'.$gid.'的商品'); 


class BallShop extends BaseShop 

var $itme_id = null; 
public function 1construct(var $itme_id = null; 
public function __construct() 213$13$ 31345%_325%;
public function open() 

$this->sell($this->itme_id); 

}

這裡是一個例子,想上面一樣我定義了一個商店類,抽出了它所有像的部分,買(buy),賣(sell),看(view),並且抽象類別裡都實作了這些方法,那麼繼承它的子類別就自動獲得了這些方法,子類別就做它自己獨特的東西,介紹程式碼的重複,提高復用性。 

結論: 抽象類別就是一個類別的服務供應商,擁有眾多服務,你不用必須用,當需要的時候你來用就可以,如果你覺得不提供服務不滿意,你還可以自己來做。

呵呵,以上就是我對php 接口類,抽象類一些拙見,希望能對搞不清這兩個朋友一些幫助,如果什麼意見歡迎留言!更多相關文章請關注PHP中文網(www.php.cn )!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
golang是否有抽象類 golang是否有抽象類 Jan 06, 2023 pm 07:04 PM

golang沒有抽象類別。 golang並不是物件導向(OOP)語言,沒有類別和繼承的概念,也沒有抽象類別的概念;但golang中有結構體(struct)和介面(interface),可以透過struct和interface的組合來間接實作面向物件語言中的抽象類別。

Java 中介面與抽象類別在設計模式中的應用 Java 中介面與抽象類別在設計模式中的應用 May 01, 2024 pm 06:33 PM

介面和抽象類別在設計模式中用於解耦和可擴展性。介面定義方法簽名,抽象類別提供部分實現,子類別必須實作未實現的方法。在策略模式中,介面用於定義演算法,抽象類別或具體類別提供實現,允許動態切換演算法。在觀察者模式中,介面用於定義觀察者行為,抽象類別或具體類別用於訂閱和發布通知。在適配器模式中,介面用於適應現有類,抽象類或具體類可實現相容接口,允許與原有程式碼互動。

PHP中的介面和抽象類別有何不同? PHP中的介面和抽象類別有何不同? Jun 04, 2024 am 09:17 AM

介面和抽象類別用於建立可擴展的PHP程式碼,它們之間存在以下關鍵差異:介面透過實作強制執行,而抽象類別透過繼承強制執行。介面不能包含具體方法,而抽象類別可以。一個類別可以實作多個接口,但只能從一個抽象類別繼承。介面不能實例化,而抽象類別可以。

深入探討 Golang 函數介面與抽象類別的異同 深入探討 Golang 函數介面與抽象類別的異同 Apr 20, 2024 am 09:21 AM

函數介面與抽象類別均用於程式碼可重複使用性,但實作方式不同:函數介面透過引用函數,抽象類別透過繼承。函數介面不可實例化,抽象類別可實例化。函數介面必須實作所有宣告的方法,抽象類別可只實作部分方法。

Java 中介面和抽象類別的內部類別實現 Java 中介面和抽象類別的內部類別實現 Apr 30, 2024 pm 02:03 PM

Java允許在介面和抽象類別中定義內部類別,為程式碼重複使用和模組化提供靈活性。介面中的內部類別可實現特定功能,而抽象類別中的內部類別可定義通用功能,子類別提供具體實作。

Java 介面與抽象類別:通往程式設計天堂之路 Java 介面與抽象類別:通往程式設計天堂之路 Mar 04, 2024 am 09:13 AM

介面:無實作的契約介面在Java中定義了一組方法簽名,但不提供任何具體實作。它充當一種契約,強制實作該介面的類別實現其指定的方法。介面中的方法是抽象方法,沒有方法體。程式碼範例:publicinterfaceAnimal{voideat();voidsleep();}抽象類別:部分實作的藍圖抽象類別是一種父類,它提供了一個部分實現,可以被它的子類別繼承。與介面不同,抽象類別可以包含具體的實作和抽象方法。抽象方法是用abstract關鍵字聲明的,並且必須被子類別覆蓋。程式碼範例:publicabstractcla

PHP中的抽像類和接口有什麼區別? PHP中的抽像類和接口有什麼區別? Apr 08, 2025 am 12:08 AM

抽像類和接口的主要區別在於:抽像類可以包含方法的實現,而接口只能定義方法的簽名。 1.抽像類使用abstract關鍵字定義,可包含抽象和具體方法,適合提供默認實現和共享代碼。 2.接口使用interface關鍵字定義,只包含方法簽名,適合定義行為規範和多重繼承。

Java 介面與抽象類別:揭示它們之間的內在聯繫 Java 介面與抽象類別:揭示它們之間的內在聯繫 Mar 04, 2024 am 09:34 AM

介面介面在Java中定義了抽象方法和常數。介面中的方法沒有實現,而是由實作該介面的類別來提供。介面定義了合同,要求實作類別提供指定的方法實作。宣告介面:publicinterfaceExampleInterface{voiddoSomething();intgetSomething();}抽象類別抽象類別是一個不能被實例化的類別。它包含抽象方法和非抽象方法的混合。與介面類似,抽象類別中的抽象方法由子類別實作。但是,抽象類別還可以包含具體的方法,這些方法提供了預設實作。聲明抽象類別:publicabstractcl

See all articles