PHP程序設(shè)計(jì)基礎(chǔ)(微課版)(第2版)課件 3.PHP final 關(guān)鍵字與類的接口_第1頁
PHP程序設(shè)計(jì)基礎(chǔ)(微課版)(第2版)課件 3.PHP final 關(guān)鍵字與類的接口_第2頁
PHP程序設(shè)計(jì)基礎(chǔ)(微課版)(第2版)課件 3.PHP final 關(guān)鍵字與類的接口_第3頁
PHP程序設(shè)計(jì)基礎(chǔ)(微課版)(第2版)課件 3.PHP final 關(guān)鍵字與類的接口_第4頁
PHP程序設(shè)計(jì)基礎(chǔ)(微課版)(第2版)課件 3.PHP final 關(guān)鍵字與類的接口_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

5.5PHPfinal關(guān)鍵字陳學(xué)平

015PHPfinal關(guān)鍵字5PHPfinal關(guān)鍵字final關(guān)鍵字。final關(guān)鍵字用于定義類和方法,該關(guān)鍵字表示該類或方法為最終版本,即該類不能被繼承,或該方法在子類中不能被重載(覆蓋)。類使用final關(guān)鍵字的實(shí)例:finalclassPerson{......}final定義的類被繼承時(shí)會(huì)提示如下錯(cuò)誤:Fatalerror:ClassStudentmaynotinheritfromfinalclass(Person)in...5PHPfinal關(guān)鍵字classPerson{

finalfunctionsay()

{

......

}}025PHP類的接口6.1PHP接口PHP類是單繼承,也就是不支持多繼承,當(dāng)一個(gè)類需要多個(gè)類的功能時(shí),繼承就無能為力了,為此PHP引入了類的接口技術(shù)。如果一個(gè)抽象類里面的所有方法都是抽象方法,且沒有聲明變量,而且接口里面所有的成員都是public權(quán)限的,那么這種特殊的抽象類就叫接口。接口使用關(guān)鍵字interface來定義,并使用關(guān)鍵字implements來實(shí)現(xiàn)接口中的方法,且必須完全實(shí)現(xiàn)。實(shí)例4使用關(guān)鍵字interface定義接口,并使用關(guān)鍵字implements實(shí)現(xiàn)接口中的方法實(shí)例代碼如下:<?php6.1PHP接口<?php//定義接口interfaceUser{

functiongetDiscount();

functiongetUserType();}//VIP用戶接口實(shí)現(xiàn)classVipUserimplementsUser{

//VIP用戶折扣系數(shù)

private$discount=0.8;

functiongetDiscount(){

return$this->discount;

}

functiongetUserType(){

return"VIP用戶";

}}6.1PHP接口classGoods{

var$price=100;

var$vc;

//定義User接口類型參數(shù),這時(shí)并不知道是什么用戶

functionrun(User$vc){

$this->vc=$vc;

$discount=$this->vc->getDiscount(); $usertype=$this->vc->getUserType();

echo$usertype."商品價(jià)格:".$this->price*$discount;

}}$display=newGoods();$display->run(newVipUser); //可以是更多其他用戶類型?>6.1PHP接口運(yùn)行該實(shí)例,輸出:VIP用戶商品價(jià)格:80元該實(shí)例演示了一個(gè)PHP接口的簡(jiǎn)單應(yīng)用。該實(shí)例中,User接口實(shí)現(xiàn)用戶的折扣,而在VipUser類里面實(shí)現(xiàn)了具體的折扣系數(shù)。最后商品類Goods根據(jù)User接口來實(shí)現(xiàn)不同的用戶報(bào)價(jià)。該實(shí)例僅限于演示PHP接口的用法,不涉及其科學(xué)與否。6.2實(shí)現(xiàn)多個(gè)接口PHP也可以在繼承一個(gè)類的時(shí)候同時(shí)實(shí)現(xiàn)多個(gè)接口:class子類extends父類implemtns接口1,接口2,...{......}6.3抽象類和接口的區(qū)別接口是特殊的抽象類,也可以看做是一個(gè)模型的規(guī)范。接口與抽象類大致區(qū)別如下:一個(gè)子類如果implements一個(gè)接口,就必須實(shí)現(xiàn)接口中的所有方法(不管是否需要);如果是繼承一個(gè)抽象類,只需要實(shí)現(xiàn)需要的方法即可。如果一個(gè)接口中定義的方法名改變了,那么所有實(shí)現(xiàn)此接口的子類需要同步更新方法名;而抽象類中如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論