介面and抽象類
**示例:
// 介面
/*介面方法不能用 public private protected static abstract final 等修飾詞修飾
系統會將方法指定死為 public abstract
成員屬性只能是靜態常量 const
介面可以多繼承 implements n
*/inte***ce obj
abstract class r implements obj
}class router extends r
function del(){}
}// 抽象類
/*抽象類(abstract class class_name)裡面至少有乙個抽象方法(abstract function func_name(); 沒有abstract修飾的方法 function func_name(); 會報錯 說方法沒有結構體)
全是抽象方法也可以
抽象類裡面允許有(各種許可權的)屬性
抽象類單繼承 extends 1
*/abstract class base
}abstract class ext extends base
/*public function exp()
*/}}
總結:
1) 抽象方法 abstract function func_name();
2) 介面的方法不允許用修飾詞(系統指定死為 abstract public) 屬性必須用const
定義繼承
方法屬性
抽象類abstract class class_name
extends 1
至少乙個抽象方法
屬性可以是各種許可權
介面inte***ce if_name
implements n
全部抽象方法,不允許修飾詞
屬性只能是靜態常量 const
實現 抽象類/介面 部分方法的class是抽象class
理解:
抽象類 定義好的封裝類 給使用者一些可擴充套件的自由,使用者自由實現自己的方法
介面 嚴格的結構限制
PHP物件導向 介面類 抽象類
php物件導向在初學時就應該熟練掌握,但許久不用,總會生疏,在此補充記憶物件導向介面和抽象的概念。1.定義乙個介面 inte ce icaneat想實現此介面則需要實現eat方法,2.實現介面 class human implements icaneat 判斷是否實現介面 var dump man ...
php中抽象類與介面的區別
1,抽象類繼承extends 介面的繼承implements 2,介面沒有資料成員,但是抽象類有資料成員,而且可以進行封裝 3,介面沒有建構函式 4,介面中只能使用public修飾符,抽象類可以使用public,protected,private 5,乙個類可以繼承多個介面,但是只能繼承乙個抽象類。...
PHP抽象類與介面的異同
抽象類與介面的異同 一 相同點 1.兩者都是抽象類,都不能例項化 2.inte ce實現類及abstract class的子類都必須要實現已經宣告的抽象方法 二 不同點 1.inte ce需要實現,要用implements,而abstract class需要繼承,要用extends 2.乙個類可以實...