PHP多態(tài)代碼實例
多態(tài)定義:只關心一個接口或者基類,而不關心一個對象的具體類。(同一類型,不同結(jié)果)
這里兩個例子:
第一個,我們發(fā)現(xiàn),基類定義了標準,子類進行了自我規(guī)則的實現(xiàn)。這是多態(tài)的一個要求。同時,這是滿足重寫;實際上這是不同類的不同表現(xiàn);沒有嚴格滿足一個接口,或者基類編程。因為你調(diào)用的時候不是 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());
第二個例子:dovoice 參數(shù)規(guī)定了$obj 為animal,意識就是用接口 接受了 實現(xiàn)類對象。了向上轉(zhuǎn)型。這就符合同一類型,不同結(jié)果了,這就是多態(tài);
實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉(zhuǎn)型機制。
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());
相關文章
詳解WordPress中提醒安裝插件以及隱藏插件的功能實現(xiàn)
這篇文章主要介紹了WordPress中提醒安裝插件以及隱藏插件的功能實現(xiàn),這兩種功能通常在多用戶模式下進行管理時用得比較多,需要的朋友可以參考下2015-12-12
PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結(jié)
下面小編就為大家分享一篇PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
解決laravel 5.1報錯:No supported encrypter found的辦法
這篇文章主要給大家介紹了關于解決laravel 5.1報錯:No supported encrypter found的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06
laravel5.1框架model類查詢的實現(xiàn)方法
今天小編就為大家分享一篇laravel5.1框架model類查詢的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10

