PHP介面類和抽象類的區別和使用場景

2021-09-13 17:29:21 字數 1083 閱讀 6924

對介面的使用是通過關鍵字implements。對抽象類的使用是通過關鍵字extends。當然介面也可以通過關鍵字extends繼承。

介面中不可以宣告成員變數(包括類靜態變數),但是可以宣告類常量。抽象類中可以宣告各種型別成員變數,實現資料的封裝。

介面沒有建構函式,抽象類可以有建構函式。

介面中的方法預設都是public型別的,而抽象類中的方法可以使用private,protected,public來修飾。

乙個類可以同時實現多個介面,但是乙個類只能繼承乙個抽象類。

<?php 

//抽象類

abstract class father

abstract function meth2();

public $var1="var1";

public static $var2="var2";

const var3="var3";

}//繼承抽象類

class son extends father

}$s=new son();

echo $s->var1."

";echo father::$var2."

";echo father::var3."";

//介面

inte***ce ifather

//繼承介面(單繼承)

class ison implements ifather

}$is=new ison();

echo ifather::ivar3;

//介面

inte***ce father

inte***ce mother

inte***ce fam extends father,mother

//多繼承介面

class test implements fam

function shuchu()

function cook($name)

}$t=new test();

$t->shuchu();

$t->dayin("小強");

$t->cook("媽媽");

?>

抽象方法 抽象類 介面 介面和抽象類的區別

某個父類只知道子類因該包含什麼樣的方法,無法知道這些子類如何實現這些方法。抽象類包含該方法但沒有對該方法的具體實現。有抽象方法的類只能被定義為抽象類,抽象類裡可以沒有抽象方法。抽象方法和抽象類的規則 public abstract class shape private string color p...

php抽象類和介面

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

php 介面和抽象類

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