PHP介面繼承及介面多繼承詳解
阿新 • • 發佈:2019-02-18
在PHP的介面中,介面可以繼承介面。雖然PHP類只能繼承一個父類(單繼承),但是介面和類不同,介面可以實現多繼承,可以繼承一個或者多個介面。當然介面的繼承也是使用extends關鍵字,要多個繼承的話只要用逗號把繼承的介面隔開即可。
需要注意的是當你介面繼承其它介面時候,直接繼承父介面的靜態常量屬性和抽象方法,所以類實現介面時必須實現所有相關的抽象方法。
現在你對PHP介面的繼承有所瞭解了吧,下面的例子可供參考,程式碼如下:
- <?php
- interface father{
- function shuchu();
- }
- interface fam extends father{
- function cook($name);
- }
- class test implements fam{
- function shuchu(){
- echo"介面繼承,要實現兩個抽象方法";
- echo"<br>";
- }
- function
- echo"平時經常做飯的人是:".$name;
- }
- }
- $t=new test();
- $t->shuchu();
- $t->cook("媽媽");
- ?>
程式碼執行結果如下:
介面繼承,要實現兩個抽象方法 平時經常做飯的人是:媽媽 |
上面的示例是介面繼承了一個介面,所以在test類實現fam介面的時候要例項兩個抽象方法,就是把介面的子類和父類的抽象方法都例項。
下面來看一個介面多繼承的示例,程式碼如下:
- <?php
- interface father{
- function shuchu();
- }
- interface mother{
- function dayin($my);
- }
- interface fam extends father,mother{
- function cook($name);
- }
- class test implements fam{
- function dayin($my){
- echo"我的名字是:".$my;
- echo"<br>";
- }
- function shuchu(){
- echo"介面繼承,要實現兩個抽象方法";
- echo"<br>";
- }
- function cook($name){
- echo"平時經常做飯的人是:".$name;
- }
- }
- $t=new test();
- $t
- $t->dayin("小強");
- $t->cook("媽媽");
- ?>
示例執行結果:
介面繼承,要實現兩個抽象方法 我的名字是:小強 平時經常做飯的人是:媽媽 |
這段程式碼由於介面繼承了兩個介面,所有例項時要把這三個抽象類的所有抽象方法都例項,總共有三個。看完這兩個例子,你應該對介面的繼承熟悉了吧,其實就一個單繼承和多繼承,只要實現了所有相關的抽象方法就可以了。