您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中如何實現抽象類,接口功能、定義方法操作,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體如下:
這里先介紹接口,因為在我最近看的好幾本php工具書中都沒有提到抽象類。
本人也覺得,在理解了接口后抽象類也非常好理解。
例子代碼隨便寫了一下。例子代碼是很ok的,測試過了不會報錯,懶得看代碼的筒靴們看文字一樣。栗子舉的不好。
代碼測試環境:php5.3.29
接口(interface):
接口就是為抽象而生的,相當于一個約定或規范,方便框架搭建,代碼分工。
它里面指定了抽象方法的名稱和參數和成員常量,但不能包含任何的具體方法,變量.
個人認為php是弱類型語言,強調的是靈活性。與java相比php里的接口對類型要求太松弛。不大好用,不推薦大量使用。
1)接口中全部是抽象方法。(因為要用來給子類實現。所以都要是public
或protected
的。)
2)接口中不能有具體方法,且只能有成員常量。
3) 由于php和java c++等強類型語言不同,php是弱類型且動態類型的本身就不指定返回類型,參數的數據類型除四種基本類型不能指定外也可寫可不寫,所以對方法返回值和參數的類型無要求。
4)一個類可以實現多個接口。用法: implements
關鍵字后實現多個接口用逗號隔開。
interface Car { const name = "車子"; public function run($speed=400,$time=300); } class Xiali implements Car { public function run($s=100,$t=200){//參數個數必須相同 echo '哈哈 我會跑'; return 'abc'; } public function fly() { echo '哈哈我會飛'; } }
抽象類(abstract class):
作用和接口一樣,都是為了規范子類的功能,只是比接口多包含了具體的內容。
1)包含至少一個抽象方法(abstract function)的類(換言之,任何類只要有了一個或以上的抽象方法,這個類就必須是抽象類。)
2)抽象類和接口一樣不能實例化。都叫抽象的了,還咋實例化,實例都是具體的。2333.
3)小結:抽象類和普通類倆區別:1.至少包含一個抽象方法 2.不能實例化。別的都一樣。
4)用法:
abstract class Father{ abstract function func1();//至少一個抽象方法。 public function func2(){//具體方法隨便寫。 echo 'func2'; $this->func3(); } private function func3(){ echo '一個private方法'; } }
實現繼承到的抽象方法時
/** * 繼承抽象類 * 必須實現其所有抽象方法 * 和普通一樣,一個類也只能繼承一個抽象類 */ class Son extends Father { public function func1() { echo '實現(重寫)抽象方法。參數名個數必須相同' } }
以上是“PHP中如何實現抽象類,接口功能、定義方法操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。