PHP面向?qū)ο蠖鄳B(tài)性實(shí)現(xiàn)方法簡(jiǎn)單示例
本文實(shí)例講述了PHP面向?qū)ο蠖鄳B(tài)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
多態(tài):父類引用指向子類對(duì)象(面向?qū)ο笾心軌蚋鶕?jù)使用類的上下文(使用輸入不同的類調(diào)用不同類的方法)來(lái)重新定義或改變類的性質(zhì)和行為。);接口引用指向?qū)崿F(xiàn)接口的類對(duì)象。
面向?qū)ο螅?/strong>把數(shù)據(jù)(屬性),操作數(shù)據(jù)的方法,邏輯,形成一個(gè)類,把類抽象出來(lái)形成對(duì)象,通過(guò)對(duì)象使用類;
<?php class work{ function polymorphic($obj){ //檢查是否引用類型(obj是否繼承animal類) if($obj instanceof animal){ $obj -> fun(); } else{ echo "no function"; } } //如果需要指定類 (指定cat類,包含cat子類) function bose(cat $obj){ $obj->fun(); } } //抽象類 abstract class animal{ abstract function fun(); } //cat貓類 class cat extends animal{ function fun(){ echo "cat say miaomiao..."; } } //dog狗類 class dog extends animal{ function fun(){ echo "dog say wangwang..."; } } class mouse extends cat{ } //先new一個(gè)work類 $new_work = new work(); //然后通過(guò)new_work對(duì)象 調(diào)用 polymorphic 方法,傳入不同的類實(shí)現(xiàn) 父類引用指向子類對(duì)象;接口引用指向?qū)崿F(xiàn)接口的類對(duì)象(多態(tài))。 $new_work->polymorphic(new cat()); echo '<br/>'; $new_work->polymorphic(new dog()); echo '<br/>'; //指定類方式仿java $new_work->bose(new cat()); echo '<br/>'; //如果傳輸其他類,或者未繼承cat類則會(huì)報(bào)錯(cuò) //$new_work->bose(new dog()); echo '<br />'; //這也不會(huì)報(bào)錯(cuò) $new_work->bose(new mouse());
運(yùn)行結(jié)果:
cat say miaomiao... dog say wangwang... cat say miaomiao... cat say miaomiao...
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- 理解和運(yùn)用PHP中的多態(tài)性[譯]
- PHP5多態(tài)性與動(dòng)態(tài)綁定介紹
- php學(xué)習(xí)筆記 面向?qū)ο笾衃接口]與[多態(tài)性]的應(yīng)用
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之接口用法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類詳解
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)類的定義與用法簡(jiǎn)單示例
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)OOP繼承用法入門示例
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API詳解
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之多態(tài)性的應(yīng)用示例
相關(guān)文章
PHP設(shè)計(jì)模式之建造者模式定義與用法簡(jiǎn)單示例
這篇文章主要介紹了PHP設(shè)計(jì)模式之建造者模式定義與用法,簡(jiǎn)單描述了建造者模式的概念、原理并結(jié)合實(shí)例形式分析了建造者模式的具體定義與使用方法,需要的朋友可以參考下2018-08-08php通過(guò)sort()函數(shù)給數(shù)組排序的方法
這篇文章主要介紹了php通過(guò)sort()函數(shù)給數(shù)組排序的方法,實(shí)例分析了php中sort()函數(shù)的功能及相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03dedecms中顯示數(shù)字驗(yàn)證碼的修改方法
dedecms中顯示數(shù)字驗(yàn)證碼的修改方法...2007-03-03php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法
這篇文章主要介紹了php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法,較為詳細(xì)的分析了php中數(shù)組遍歷的常用技巧與實(shí)例用法,需要的朋友可以參考下2015-03-03php連接mysql之mysql_connect()與mysqli_connect()的區(qū)別
本擴(kuò)展自 PHP 5.5.0 起已廢棄,并在將來(lái)會(huì)被移除。應(yīng)使用 MySQLi 或 PDO_MySQL 擴(kuò)展來(lái)替換之,這里就為大家分享一下mysql_connect()與mysqli_connect()的區(qū)別,需要的朋友可以參考下2020-07-07PHP實(shí)現(xiàn)微信模擬登陸并給用戶發(fā)送消息的方法【文字,圖片,圖文】
這篇文章主要介紹了PHP實(shí)現(xiàn)微信模擬登陸并給用戶發(fā)送消息的方法,可實(shí)現(xiàn)發(fā)送文字、圖片及圖文的功能,涉及php針對(duì)微信接口的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06