區別:1.介面的關鍵字是implements,抽象類別的是extends;2、介面不可宣告成員變量,抽象類別能;3、介面沒有建構函數,抽象類別有;4、介面方法預設是public類型,抽象類別不是;5、一個類別可同時實作多個接口,只能繼承於一個抽象類別。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
區別:
1、對介面的使用是透過關鍵字implements。對抽象類別的使用是透過關鍵字extends。當然介面也可以透過關鍵字extends繼承。
2、介面中不可以宣告成員變數(包括類別靜態變數),但是可以宣告類別常數。抽象類別中可以宣告各種類型成員變量,實作資料的封裝。 (另JAVA介面中的成員變數都要宣告為public static final型別)
<?php abstract class Father { function meth1() { echo "meth1...<br>"; } abstract function meth2(); public $var1="var1"; public static $var2="var2"; const Var3="Var3"; } class Son extends Father { function meth2() { echo "meth2 of Son...<br>"; } } $s=new Son(); echo $s->var1."<br>"; echo Father::$var2."<br>"; echo Father::Var3."<br>"; Interface IFather { //public $iVar1="iVar1"; 此处接口定义中不能包含成员变量 //public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量 const iVar3="iVar3"; function iMeth1(); } Class ISon implements IFather { function iMeth1() { echo "iMeth1...<br>"; } } $is=new ISon(); echo IFather::iVar3; ?>
3、介面沒有建構函數,抽象類別可以有建構子。
4、介面中的方法預設都是public類型的,而抽象類別中的方法可以使用private,protected,public來修飾。
5、一個類別可以同時實作多個接口,但一個類別只能繼承於一個抽象類別。
抽象類別還是介面。
推薦學習:《PHP影片教學》
以上是php抽象類別和介面的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!