PHP多態(tài)代碼實(shí)例
多態(tài)定義:只關(guān)心一個(gè)接口或者基類,而不關(guān)心一個(gè)對象的具體類。(同一類型,不同結(jié)果)
這里兩個(gè)例子:
第一個(gè),我們發(fā)現(xiàn),基類定義了標(biāo)準(zhǔn),子類進(jìn)行了自我規(guī)則的實(shí)現(xiàn)。這是多態(tài)的一個(gè)要求。同時(shí),這是滿足重寫;實(shí)際上這是不同類的不同表現(xiàn);沒有嚴(yán)格滿足一個(gè)接口,或者基類編程。因?yàn)槟阏{(diào)用的時(shí)候不是 stu->showGrade() 而是各自自己的方法;
class stu{ public function showGrade(){ echo "base class"; } } class xiaomin extends stu{ public function showGrade(){ echo "is son show 80"; } } class xiaoli extends stu{ public function showGrade(){ echo "is son show 60"; } } function doit($obj){ if(get_class($obj) != "stu"){ $obj->showGrade(); } } doit(new xiaoli()); doit(new xiaomin());
第二個(gè)例子:dovoice 參數(shù)規(guī)定了$obj 為animal,意識就是用接口 接受了 實(shí)現(xiàn)類對象。了向上轉(zhuǎn)型。這就符合同一類型,不同結(jié)果了,這就是多態(tài);
實(shí)際上在Java中 會是 animal a = new dog();這樣子的;因?yàn)镻HP 是若類型語言。沒有對象轉(zhuǎn)型機(jī)制。
interface animal{ public function voice(); } class cat implements animal{ public function voice(){ echo "miao~~~<br>"; } } class dog implements animal{ public function voice(){ echo "wang ~~~<br>"; } } function dovoice(animal $obj){ $obj->voice(); } dovoice(new dog()); dovoice(new cat());
- php學(xué)習(xí)筆記 面向?qū)ο笾衃接口]與[多態(tài)性]的應(yīng)用
- PHP5多態(tài)性與動(dòng)態(tài)綁定介紹
- 理解和運(yùn)用PHP中的多態(tài)性[譯]
- PHP面向?qū)ο笕筇攸c(diǎn)學(xué)習(xí)(充分理解抽象、封裝、繼承、多態(tài))
- 實(shí)例講解PHP面向?qū)ο笾鄳B(tài)
- php面向?qū)ο笕ヂ?(十五) 多態(tài)的應(yīng)用
- PHP5中實(shí)現(xiàn)多態(tài)的兩種方法實(shí)例分享
- PHP面向?qū)ο缶幊讨钊肜斫夥椒ㄖ剌d與方法覆蓋(多態(tài))
- php 三大特點(diǎn):封裝,繼承,多態(tài)
- PHP面向?qū)ο蠖鄳B(tài)性實(shí)現(xiàn)方法簡單示例
相關(guān)文章
詳解WordPress中提醒安裝插件以及隱藏插件的功能實(shí)現(xiàn)
這篇文章主要介紹了WordPress中提醒安裝插件以及隱藏插件的功能實(shí)現(xiàn),這兩種功能通常在多用戶模式下進(jìn)行管理時(shí)用得比較多,需要的朋友可以參考下2015-12-12PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結(jié)
下面小編就為大家分享一篇PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03解決laravel 5.1報(bào)錯(cuò):No supported encrypter found的辦法
這篇文章主要給大家介紹了關(guān)于解決laravel 5.1報(bào)錯(cuò):No supported encrypter found的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06Codeigniter整合Tank Auth權(quán)限類庫詳解
相交其他CodeIgniter的類庫,tank_auth,配置簡單,使用也簡單,并且作者也一直在更新。這篇文章主要介紹了Codeigniter整合Tank Auth權(quán)限類庫詳解,需要的朋友可以參考下2014-06-06laravel5.1框架model類查詢的實(shí)現(xiàn)方法
今天小編就為大家分享一篇laravel5.1框架model類查詢的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10