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

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
golang是否有抽象类golang是否有抽象类Jan 06, 2023 pm 07:04 PM

golang没有抽象类。golang并不是面向对象(OOP)语言,没有类和继承的概念,也没有抽象类的概念;但golang中有结构体(struct)和接口(interface),可以通过struct和interface的组合来间接实现面向对象语言中的抽象类。

Java 中接口和抽象类的内部类实现Java 中接口和抽象类的内部类实现Apr 30, 2024 pm 02:03 PM

Java允许在接口和抽象类中定义内部类,为代码重用和模块化提供灵活性。接口中的内部类可实现特定功能,而抽象类中的内部类可定义通用功能,子类提供具体实现。

Java 接口与抽象类:揭示它们之间的内在联系Java 接口与抽象类:揭示它们之间的内在联系Mar 04, 2024 am 09:34 AM

接口接口在Java中定义了抽象方法和常量。接口中的方法没有实现,而是由实现该接口的类来提供。接口定义了合同,要求实现类提供指定的方法实现。声明接口:publicinterfaceExampleInterface{voiddoSomething();intgetSomething();}抽象类抽象类是一个不能被实例化的类。它包含抽象方法和非抽象方法的混合。与接口类似,抽象类中的抽象方法由子类实现。但是,抽象类还可以包含具体的方法,这些方法提供了默认实现。声明抽象类:publicabstractcl

Java 接口与抽象类:通往编程天堂之路Java 接口与抽象类:通往编程天堂之路Mar 04, 2024 am 09:13 AM

接口:无实现的契约接口在Java中定义了一组方法签名,但不提供任何具体实现。它充当一种契约,强制实现该接口的类实现其指定的方法。接口中的方法是抽象方法,没有方法体。代码示例:publicinterfaceAnimal{voideat();voidsleep();}抽象类:部分实现的蓝图抽象类是一种父类,它提供了一个部分实现,可以被它的子类继承。与接口不同,抽象类可以包含具体的实现和抽象方法。抽象方法是用abstract关键字声明的,并且必须被子类覆盖。代码示例:publicabstractcla

Java 中接口和抽象类在设计模式中的应用Java 中接口和抽象类在设计模式中的应用May 01, 2024 pm 06:33 PM

接口和抽象类在设计模式中用于解耦和可扩展性。接口定义方法签名,抽象类提供部分实现,子类必须实现未实现的方法。在策略模式中,接口用于定义算法,抽象类或具体类提供实现,允许动态切换算法。在观察者模式中,接口用于定义观察者行为,抽象类或具体类用于订阅和发布通知。在适配器模式中,接口用于适配现有类,抽象类或具体类可实现兼容接口,允许与原有代码交互。

深入探讨 Golang 函数接口与抽象类的异同深入探讨 Golang 函数接口与抽象类的异同Apr 20, 2024 am 09:21 AM

函数接口与抽象类均用于代码可重用性,但实现方式不同:函数接口通过引用函数,抽象类通过继承。函数接口不可实例化,抽象类可实例化。函数接口必须实现所有声明的方法,抽象类可只实现部分方法。

Java 中接口和抽象类的性能优化技巧Java 中接口和抽象类的性能优化技巧May 04, 2024 am 11:36 AM

优化Java中接口和抽象类性能技巧:避免接口中使用默认方法,仅在必要时使用。最小化接口定义,仅包含必要内容。实现尽可能多的抽象类方法。使用final修饰符防止子类覆盖。声明不应调用的方法为private。

PHP中的接口和抽象类有何不同?PHP中的接口和抽象类有何不同?Jun 04, 2024 am 09:17 AM

接口和抽象类用于创建可扩展的PHP代码,它们之间存在以下关键差异:接口通过实现强制执行,而抽象类通过继承强制执行。接口不能包含具体方法,而抽象类可以。一个类可以实现多个接口,但只能从一个抽象类继承。接口不能实例化,而抽象类可以。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

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

SublimeText3 Mac版

SublimeText3 Mac版

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