首頁  >  文章  >  後端開發  >  PHP如何使用介面實作多重繼承? (程式碼範例)

PHP如何使用介面實作多重繼承? (程式碼範例)

青灯夜游
青灯夜游原創
2019-02-22 10:10:573601瀏覽

多重繼承是物件導向程式語言的屬性,其中子類別可以繼承多個父類別或超級類別的屬性。那麼如何在PHP中實現多重繼承?以下這篇文章就來跟大家介紹一下使用介面實作多重繼承的方法,希望對大家有幫助。

PHP如何使用介面實作多重繼承? (程式碼範例)

PHP是不支援多重繼承的,一次只繼承一個類別。但是,我們可以透過在PHP中使用介面( Interface)或Trait特性來實現多重繼承。

下面我們就來介紹如何在PHP中使用介面( Interface)實作多重繼承的。 【影片教學推薦:PHP教學

在PHP中,介面區塊宣告了要用類別定義的函數集以實作此介面。一個類別可以擴展多個接口,因此,我們可以在PHP中模擬多個繼承。

1、使用類別和介面實作多重繼承

#語法:

class child_class_name extends parent_class_name implements interface_name1, ...

範例:

<?php 
header("content-type:text/html;charset=utf-8");   
class A { 
   public function insideA() { 
    echo "我在类A中"; 
     } 
} 
  
interface B { 
   public function insideB(); 
} 
  
class Multiple extends A implements B { 
  
    function insideB() { 
        echo "<br><br>我在接口中"; 
    } 
  
    public function insidemultiple() { 
    echo "<br><br>我在继承类中"; 
    } 
} 
  
$phpzww = new multiple(); 
$phpzww->insideA(); 
$phpzww->insideB(); 
$phpzww->insidemultiple(); 
?>

輸出:

PHP如何使用介面實作多重繼承? (程式碼範例)

程式碼說明:介面「B」與類別「A」一起使用以實現多重繼承。要記住的重點是,它不能在介面內定義函數,它應該在子類別“Multiple”中定義。我們使用名為“phpzww”的子類別(Multiple)物件來呼叫所有函數。

2、使用多個介面實作多重繼承

#語法:

class child_class_name implements interface_name1, interface_name2, ...

範例:

<?php 
header("content-type:text/html;charset=utf-8"); 
interface C { 
   public function insideC(); 
} 
  
interface B { 
   public function insideB(); 
} 
  
class Multiple implements B, C { 
  
    // 接口B的功能
    function insideB() { 
        echo "<br><br>我在接口B中"; 
    } 
  
    // 接口C的功能
    function insideC() { 
        echo "<br><br>我在接口C中"; 
    } 
  
    public function insidemultiple() 
    { 
        echo "<br><br>我在接口类中"; 
    } 
} 
  
$phpzww = new multiple(); 
$phpzww->insideC(); 
$phpzww->insideB(); 
$phpzww->insidemultiple(); 
?>

輸出:

PHP如何使用介面實作多重繼承? (程式碼範例)

程式碼說明:在上面的程式碼範例中,有兩個名為「B」和「C」的接口,它們扮演基底類別的角色,並且有一個名為“Multiple”的子類,我們使用名為“phpzww”的物件來呼叫所有函數。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

相關文章推薦:

PHP如何使用Trait特性實現多重繼承? (程式碼範例)

以上是PHP如何使用介面實作多重繼承? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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