




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 抽象類 一個小問題? 為什么設(shè)計抽象類這個技術(shù)? 1. 在我們實際開發(fā)中,我們可能有這樣一種類,是其它類的父類,但它本身并不需要被實例化,主要用途是用于讓子類來繼承,這樣可以達到代碼復(fù)用,同時利于項目設(shè)計者設(shè)計類 快速入門 abstract class Animal public $name; protected $price; /這個方法不有方法體,這個方法主要是為了讓子類去實現(xiàn) abstract function cry(; class Dog extends Animal /覆蓋 function cry( echo 小狗汪汪叫; /創(chuàng)建一個子類實例 $dog1=new Dog(; $
2、dog1-cry(; 使用抽象類的注意事項 1. 基本用法 Abstract class 類名 /方法 /屬性 2. 用abstract關(guān)鍵字來修飾一個類時,這個類就叫抽象類 3. 用abstract關(guān)鍵字來修飾一個方法,這個方法就叫抽象方法,這里抽象方法就不能有方法體 4. 抽象類不能被實例化 5. 抽象類不一定要包含abstract方法,同時還可以有實現(xiàn)了的方法 6. 一旦類包含了abstract方法,則這個類必須聲明為abstract 7. 抽象方法不能包含函數(shù)體 8. 如果一個類繼承了某個抽象類,則它必須實現(xiàn)該抽象類的所有抽象方法 接口 快速入門案例 /使用程序模擬現(xiàn)實情況 inter
3、face iUsb public function start(; public function stop(; / 編寫手機類,讓它去實現(xiàn)接口 /1.當一個類實現(xiàn)了某個接口,則要求該類必須實現(xiàn)這個接口的所有方法 class Camera implements iUsb public function start( echo 相機開始工作; public function stop( echo 相機停止工作; /編寫手機類 class Phone implements iUsb public function start( echo 手機開始工作; public function stop(
4、echo 手機停止工作; $camera1=new Camera(; $camera1-start(; $camera1-stop(; $phone1=new Phone(; $phone1-start(; $phone1-stop(; ? 1. 接口的使用基本語法 Interface 接口名 /屬性 /方法 ?接口中方法都不能有方法體,都是抽象方法?如何去實現(xiàn)這個接口?Class 類名 implements 接口名1,接口2.。 3. 接口的作用就是聲明一些方法,供其它類來實現(xiàn),接口還體現(xiàn)了編程中我們希望的效果高內(nèi)聚低耦合的特點 ?深入討論接口:interface 什么情況下可以考慮使用接口
5、 1. 定規(guī)范 2. 定下規(guī)范,讓其他的程序員來實現(xiàn) /項目經(jīng)理 /學生管理系統(tǒng)(students /定義接口 interface StuManageInterface public function addStudent(; public function delStudent(; public function updStudent(; /給張三 class StuManage implements StuManageInterface 3. 當多個類,他們之間是平級的關(guān)系,這些類都要去實現(xiàn)某個功能,只是實現(xiàn)的方式不一樣 ?接口的細節(jié)問題 1. 不能去實例化一個接口 2. 接口中的所有方法
6、都不能有方法體 3. 一個類可以實現(xiàn)多個接口,但要用逗號隔開 4. 接口在可以有屬性,但必須是常量,默認是public interface iUsb const A=90; echo Ok; echo iUsb:A; 5. 接口的方法必須都是 public ,默認是public 6. 一個接口不能繼承其它的類,但是可以繼承別的接口 類和接口關(guān)系一圖 interface iUsb2 public function a(; interface iUsb3 public function b(; interface iUsb extends iUsb2,iUsb3 const A=90; funct
7、ion test(; class Class1 implements iUsb public function a( public function b( public function test( echo Ok; echo iUsb:A; 從上面我們看出 1 一個接口可以繼承一個或多個其他接口 2 當一個類去實現(xiàn)某些接口,則必須把所被繼承下來的方法都實現(xiàn) ?繼承和實現(xiàn)接口的比較 1. 可以認為,實現(xiàn)接口是對單一繼承的補充 2. 可以在不破壞類層級關(guān)系的前提下,對某個類功能擴展 class Monkey public $name; public $age; public function c
8、limbing( echo 猴子會爬樹; interface iBirdable public function fly(; interface iFishable public function swimming(; class LittleMonkey extends Monkey implements iBirdable,iFishable public function fly( echo 猴子會飛; public function swimming( echo 猴子會游泳; $littleMonkey1=new LittleMonkey(; $littleMonkey1-climbi
9、ng(; $littleMonkey1-fly(; $littleMonkey1-swimming(; ?Final關(guān)鍵字 1. 如果我們希望有一個類,不被任何子類繼承(可能因為安全考慮),可以使用final final class A class B extends A echo ok; 2. 如果我們希望某個方法,比如計算個人所得稅的方法,不被任何的子類重寫,可以使用final來修飾方法 class A final public function getRate($salary/ return $salary*0.08; class B extends A /不能去覆蓋父類的方法 /*pu
10、blic function getRate($salary return $salary*0.01; */ $b=new B(; echo $b-getRate(100; 3. Final關(guān)鍵字不能去修飾屬性 4. final方法可以被繼承,但不能被修改 ?const關(guān)鍵字 基本用法:const 常量名=值; 常量訪問:類名:常量名; 或 接口名:常量名;內(nèi)部外部都可訪問 常量名應(yīng)全部大寫,并且前面不用$ 常量是public類型的 常量在定義的時候必須給初值 Const關(guān)鍵字前面不要帶修飾符 一個常量是屬于某個類的,不屬于某個對象 快速入門: Class A Const 常量名=初值; Interface 接口名 Const 常量名=初值; class A const TA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化學采購合同范例
- 包土地合同范例
- 上海整車貨運業(yè)務(wù)合同范例
- 公寓酒店住房合同范例
- 辦理國稅專票合同范本
- 寫真模特合同范例
- 公寓物業(yè)合同范例
- icc合同范例中英文
- 上海 教師 合同范例
- 江西洪州職業(yè)學院《基礎(chǔ)法語(一)》2023-2024學年第一學期期末試卷
- 曲靖市出租汽車從業(yè)資格證區(qū)域科目考試題(附答案)
- 2025年安徽城市管理職業(yè)學院單招職業(yè)技能考試題庫匯編
- 2025年湖南國防工業(yè)職業(yè)技術(shù)學院單招職業(yè)傾向性測試題庫及參考答案
- 2025年湖南水利水電職業(yè)技術(shù)學院單招職業(yè)技能測試題庫附答案
- 2025年河南建筑職業(yè)技術(shù)學院單招職業(yè)技能測試題庫審定版
- 2025年湖南食品藥品職業(yè)學院單招職業(yè)傾向性測試題庫參考答案
- 2025年湖南水利水電職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫1套
- 2025年家政服務(wù)策劃免責聲明協(xié)議
- 統(tǒng)編版2024一年級下冊語文 8 《夜色》 課件
- 腰椎間盤突出癥課件(共100張課件)
- 《營養(yǎng)配餐》(教學設(shè)計)-2024-2025學年北師大版數(shù)學六年級上冊
評論
0/150
提交評論