PHP中的多型

墨辰丷
發布: 2023-03-31 08:52:01
原創
6246 人瀏覽過

這篇文章主要介紹PHP中的多態,有興趣的朋友參考下,希望對大家有幫助。

多態定義:只關心一個介面或基類,而不關心一個物件的具體類別。 (同一型,不同結果)

這裡兩個例子:

第一個,我們發現,基底類別定義了標準,子類別進行了自我規則的實作。這是多態的一個要求。同時,這是滿足重寫;實際上這是不同類別的不同表現;沒有嚴格滿足一個接口,或者基類編程。因為你呼叫的時候不是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 參數規定了$obj 為animal,意識就是用介面接受了實作類別物件。了向上轉型。這就符合相同類型,不同結果了,這就是多態;

實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉型機制。


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無序樹的實作技巧

php無序樹的實作技巧

php操作圖片的大小修改、加浮水印、產生驗證碼、輸出及儲存

以上是PHP中的多型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板