php面向对象全攻略 (十四),php面向对象全攻略 (十四) php5接口技术
20.PHP5接口技術
PHP與大多數面向對象編程語言一樣,不支持多重繼承.也就是說每個類只能繼承一個父
類。為了解決這個問題,PHP引入了接口,接口的思想是指定了一個實現了該接口的類必須
實現的一系列方法。接口是一種特殊的抽象類,抽象類又是一種特殊的類,所以接口也是一
種特殊的類,為什么說接口是一種特殊的抽象類呢?如果一個抽象類里面的所有的方法都是
抽象方法,那么我們就換一種聲明方法使用“接口”;也就是說接口里面所有的方法必須都是
聲明為抽象方法,另外接口里面不能聲明變量,而且接口里面所有的成員都是public權限的。
所以子類在實現的時候也一定要使用public權限實限。
聲明一個類的時候我們使用的關鍵字是“class”,而接口一種特殊的類,使用的關鍵字
是“interface”;
類的定義:class類名{…},接口的聲明:interface接口名{…}
代碼片段
復制代碼代碼如下:
abstractclassDemo{
var$test;
abstractfunctionfun1();
abstractfunctionfun2();
functionfun3(){
….
}
}
$demo=newDemo();//抽象類為能產生實例對象,所以這樣做是錯的,實例化對象交給子類
classTestextendsDemo{
functionfun1(){
…
}
functionfun2(){
…
}
}
$test=newTest();//子類可以實例化對象,因為實現了父類中所有抽象方法
?>
上例中定義了一個接口“one”,里面聲明了兩個抽象方法“fun1”和“fun2”,因為接
口里面所有的方法都是抽象方法,所以在聲明抽象方法的時候就不用像抽象類那樣使用
“abstract”這個關鍵字了,默認的已經加上這個關鍵字,另外在接口里邊的“public”這個訪
問權限也可以去掉,因為默認就是public的,因為接口里所有成員都要是公有的,所在對于
接口里面的成員我們就不能使用“private”的和“protected”的權限了,都要用public或是默
認的。另外在接口里面我們也聲明了一個常量“constant“,因為在接口里面不能用變量成
員,所以我們要使用const這個關鍵字聲明。
因為接口是一種特殊的抽象類,里面所有的方法都是抽象方法,所以接口也不能產生實
例對象;它也做為一種規范,所有抽象方法需要子類去實現。
我們可以使用“extends“關鍵字讓一個接口去繼承另一個接口;
代碼片段
復制代碼代碼如下:
//使用”extends”繼承另外一個接口
interfaceTwoextendsOne{
functionfun3();
functionfun4();
}
?>
而我們定義一接口的子類去實現接口中全部抽象方法使用的關鍵字是“implements”,而
不是我們前面所說的“extends”;
代碼片段
復制代碼代碼如下:
//使用“implements”這個關鍵字去實現接口中的抽象方法
classThreeimplementsOne{
functionfun1(){
….
}
functionfun2(){
….
}
}
//實現了全部方法,我們去可以使用子類去實例化對象了
$three=newThree();
?>
我們也可以使用抽象類,去實現接口中的部分抽象方法,但要想實例化對象,這個抽象
類還要有子類把它所有的抽象方法都實現才行;
在前面我們說過,PHP是單繼承的,一個類只能有一父類,但是一個類可以實現多個接
口,就相當于一個類要遵守多個規范,就像我們不僅要遵守國家的法律,如果是在學校的話,
還要遵守學校的校規一樣;
代碼片段
復制代碼代碼如下:
//使用implements實現多個接口
classFourimplemtns接口一,接口二,….{
//必須把所有接口中的方法都要實現才可以實例化對象。
}
?>
P
HP中不僅一個類可以實現多個接口,也可以在繼承一個類的同時實現多個接口,一定
要先繼承類再去實現接口;
代碼片段
復制代碼代碼如下:
//使用extends繼承一個類,使用implements實現多個接口
classFourextends類名一implemtns接口一,接口二,….{
//所有接口中的方法都要實現才可以實例化對象
………..
}
?>
您可能感興趣的文章:PHP學習記錄之面向對象(Object-orientedprogramming,OOP)基礎【接口、抽象類、靜態方法等】PHP面向對象程序設計之接口的繼承定義與用法詳解PHP面向對象五大原則之接口隔離原則(ISP)詳解PHP面向對象程序設計高級特性詳解(接口,繼承,抽象類,析構,克隆等)PHP入門教程之面向對象的特性分析(繼承,多態,接口,抽象類,抽象方法等)PHP面向對象程序設計之接口用法PHP面向對象程序設計(oop)學習筆記(一)-抽象類、對象接口、instanceof和契約式編程PHP面向對象的進階學習(抽像類、接口、final、類常量)php學習筆記面向對象中[接口]與[多態性]的應用PHP的ArrayAccess接口像數組一樣來訪問你的PHP對象PHP對象接口簡單實現方法示例
總結
以上是生活随笔為你收集整理的php面向对象全攻略 (十四),php面向对象全攻略 (十四) php5接口技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle union详解,Oracl
- 下一篇: 宝骏530,19款oBD接口在那个位置?