首頁  >  文章  >  後端開發  >  PHP中的多型

PHP中的多型

墨辰丷
墨辰丷原創
2018-06-09 11:57:046245瀏覽

這篇文章主要介紹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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn