您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)PHP面向?qū)ο蠖鄳B(tài)性的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
多態(tài):父類引用指向子類對象(面向?qū)ο笾心軌蚋鶕?jù)使用類的上下文(使用輸入不同的類調(diào)用不同類的方法)來重新定義或改變類的性質(zhì)和行為。);接口引用指向?qū)崿F(xiàn)接口的類對象。
面向?qū)ο螅?/strong>把數(shù)據(jù)(屬性),操作數(shù)據(jù)的方法,邏輯,形成一個類,把類抽象出來形成對象,通過對象使用類;
<?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一個work類 $new_work = new work(); //然后通過new_work對象 調(diào)用 polymorphic 方法,傳入不同的類實現(xiàn) 父類引用指向子類對象;接口引用指向?qū)崿F(xiàn)接口的類對象(多態(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類則會報錯 //$new_work->bose(new dog()); echo '<br />'; //這也不會報錯 $new_work->bose(new mouse());
運行結(jié)果:
cat say miaomiao... dog say wangwang... cat say miaomiao... cat say miaomiao...
感謝各位的閱讀!關(guān)于“PHP面向?qū)ο蠖鄳B(tài)性的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。