PHP抽象類和物件介面

2021-08-28 14:15:32 字數 991 閱讀 8581

php5.0起支援抽象類和抽象方法,抽象類不能被例項化。任何乙個類,如果包含至少乙個被宣告為抽象的方法,那麼這個類就必須被宣告為抽象的。被定義為抽象的方法只是宣告了其呼叫方式(引數),不能定義其具體的功能實現。

繼承乙個抽象類時,子類必須定義父類中的所有抽象方法,並且這些方法的訪問控制必須和父類中一樣或者更為寬鬆。此外,子類實現父類抽象方法時,可以在抽象方法的引數的基礎上新增一些可選的引數。

<?php

abstract class a

}class b extends a

public function bar($arg1,$arg2="option")

}$b=new b();

$b->foo();

$b->bar("b");

$b->bar("b","bb");

?>

介面通過inte***ce關鍵字定義,其中的方法沒有實現,只有方法的定義,介面中所有的方法都必須是public的,乙個類要實現乙個介面,需要通過implements關鍵字,類必須實現介面中定義的所有方法,且和介面中所定義的方法完全一致,否則會報乙個致命錯誤,類可以實現多個介面,介面用逗號分隔。乙個類實現多個介面時,介面中不能重名方法。乙個介面也可以通過extends關鍵字繼承另乙個介面。介面中也可以定義常量,與類常量的使用完全相同,但是不能被子類或子介面覆蓋。

<?php

inte***ce a

inte***ce b

inte***ce suba extends a

class c implements suba,b

public function bara($var)

public function foob()

}$c=new c();

$c->fooa();

$c->bara("test");

$c->foob();

echo c::t;

?>

php抽象類和介面

介面 使用介面,你可以指定某個類必須實現那些方法,但是不需要定義這些方法的具體內容,我們可以通過inte ce來定義乙個介面,就像定義標準類一樣,但其中定義所有的方法都是空的,介面中定義的所有的方法都必須是public 實現乙個介面,可以使用implement操作符,類中必須實現介面中定義的所用的方...

php 介面和抽象類

php 介面和抽象類 介面 inte ce 在介面內定義方法,可不提供具體的 實現 作用 提供乙個規範,如果我們知道乙個類實現了某個介面,那麼就知道了可以呼叫該介面的那些方法,我們只需要知道這些就夠了。當有很多人一起開發乙個專案時,可能都會去呼叫別人寫的一些類,我怎麼知道他的某個功能的實現方法是怎麼...

PHP物件導向 介面類 抽象類

php物件導向在初學時就應該熟練掌握,但許久不用,總會生疏,在此補充記憶物件導向介面和抽象的概念。1.定義乙個介面 inte ce icaneat想實現此介面則需要實現eat方法,2.實現介面 class human implements icaneat 判斷是否實現介面 var dump man ...