1. 程式人生 > >PHP介面繼承及介面多繼承詳解

PHP介面繼承及介面多繼承詳解

在PHP的介面中,介面可以繼承介面。雖然PHP類只能繼承一個父類(單繼承),但是介面和類不同,介面可以實現多繼承,可以繼承一個或者多個介面。當然介面的繼承也是使用extends關鍵字,要多個繼承的話只要用逗號把繼承的介面隔開即可。


   需要注意的是當你介面繼承其它介面時候,直接繼承父介面的靜態常量屬性和抽象方法,所以類實現介面時必須實現所有相關的抽象方法。

   現在你對PHP介面的繼承有所瞭解了吧,下面的例子可供參考,程式碼如下:

  1. <?php 
  2. interface father{ 
  3. function shuchu(); 
  4. }  
  5. interface fam extends father{ 
  6. function cook($name); 
  7. }  
  8. class test implements fam{ 
  9. function shuchu(){ 
  10. echo"介面繼承,要實現兩個抽象方法"
  11. echo"<br>"
  12. }  
  13. function
     cook($name){ 
  14. echo"平時經常做飯的人是:".$name;  
  15. }  
  16. }  
  17. $t=new test(); 
  18. $t->shuchu(); 
  19. $t->cook("媽媽");  
  20. ?> 

程式碼執行結果如下:

介面繼承,要實現兩個抽象方法
平時經常做飯的人是:媽媽
 


上面的示例是介面繼承了一個介面,所以在test類實現fam介面的時候要例項兩個抽象方法,就是把介面的子類和父類的抽象方法都例項。


下面來看一個介面多繼承的示例,程式碼如下:

  1. <?php 
  2. interface father{ 
  3. function shuchu(); 
  4. interface mother{ 
  5. function dayin($my); 
  6. interface fam extends father,mother{ 
  7. function cook($name); 
  8. class test implements fam{ 
  9. function dayin($my){ 
  10. echo"我的名字是:".$my;  
  11. echo"<br>"
  12. function shuchu(){ 
  13. echo"介面繼承,要實現兩個抽象方法"
  14. echo"<br>"
  15. function cook($name){ 
  16. echo"平時經常做飯的人是:".$name;  
  17. $t=new test(); 
  18. $t
    ->shuchu(); 
  19. $t->dayin("小強");  
  20. $t->cook("媽媽");  
  21. ?> 


示例執行結果:

介面繼承,要實現兩個抽象方法
我的名字是:小強
平時經常做飯的人是:媽媽
 


這段程式碼由於介面繼承了兩個介面,所有例項時要把這三個抽象類的所有抽象方法都例項,總共有三個。看完這兩個例子,你應該對介面的繼承熟悉了吧,其實就一個單繼承和多繼承,只要實現了所有相關的抽象方法就可以了。