首頁 > 後端開發 > php教程 > PHP中的多型

PHP中的多型

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

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

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

這裡兩個例子:

第一個,我們發現,基底類別定義了標準,子類別進行了自我規則的實作。這是多態的一個要求。同時,這是滿足重寫;實際上這是不同類別的不同表現;沒有嚴格滿足一個接口,或者基類編程。因為你呼叫的時候不是stu->showGrade() 而是各自自己的方法;


#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

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 是若類型語言。沒有對象轉型機制。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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
作者最新文章
最新問題
怎麼學好php
來自於 1970-01-01 08:00:00
0
0
0
PHP擴充intl
來自於 1970-01-01 08:00:00
0
0
0
php數據獲取?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板