php抽象類和介面

2021-07-25 02:27:37 字數 1599 閱讀 8692

介面

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

實現乙個介面,可以使用implement操作符,類中必須實現介面中定義的所用的方法,如果實現多個介面,可以用逗號來分割多個介面的名稱

注意實現多個介面時,介面中的方法不能有重名

介面也可以繼承,通過使用extends操作符

介面中可以定義常量,介面常量和類常量的使用完全相同,他們都是定值,不能被子類或子介面修改

例子:

//宣告介面

inte***ce itemplate

//實現介面

class template implements itemplate

public function gethtml($template)',$value,$template);

}return $template;

}}

例子2:

inte***ce a

inte***ce b

//繼承介面

inte***ce c extends a,b

//實現介面

class d implements c

public function bar()

public function baz()}

inte***ce a

抽象類php5支援抽象類和抽象方法。抽象類不能直接被例項化,必須先繼承該抽象類,然後再例項化子類,任何乙個類,如果他裡面至少有乙個方法是被宣告為抽象的,那這個類就必須被宣告為抽象的,如果類方法被宣告為抽象的,那麼其中就不能包括具體的功能實現

繼承乙個抽象類的時候,子類必須實現抽象類中的所有的抽象方法,另外,這些方法的可見性必須和抽象類中一樣(或更輕鬆),如果抽象類中的某個抽象方法被宣告為proteected,那麼子類中實現的方法應該宣告為pritected或者public 

例子:

abstract class abstractclass} 

class concreteclass1 extends abstractclass

public function prefievalue($p)concreteclass1";

}} class concreteclass2 extends abstractclass

public function prefievalue($p)concreteclass2";

}} $class1=new concreteclass1();

$class1->printout();

echo $class1->prefievalue('foo_');

列印結果:concreteclass1

foo_concreteclass1

2. 呼叫靜態方法的抽象類仍然可行的 類常量不可以的

abstract class foo

}foo::a;//沒有輸出

foo::bar();//test

php 介面和抽象類

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

php介面 抽象類

定義為抽象的類不能被例項化。任何乙個類,如果它裡面至少有乙個方法是被宣告為抽象的,那麼這個類就必須被宣告為抽象的。抽象類可以沒有抽象方法,但是抽象類依然不能被例項化 被定義為抽象的方法只是宣告了其呼叫方式 引數 不能定義其具體的功能實現。如abstract class abstractclass a...

抽象介面 php,簡述php抽象類和介面例項

抽象類 1 抽象類中可以宣告各種型別的變數。2 類中只要有抽象方法這個類就必須申明為抽象類。抽象方法的定義 abstract 修飾符 function 方法名 param 3 抽象類中的抽象方法,在子類中必須實現,並且保持引數一致,但是可以使用額外的預設值。4 抽象類不可以直接例項化。abstrac...