首頁 >後端開發 >PHP問題 >PHP是單繼承還是多繼承

PHP是單繼承還是多繼承

王林
王林原創
2019-09-19 17:56:433274瀏覽

PHP是單繼承還是多繼承

PHP是不支援多繼承的,那要如何實現多繼承呢?

可以使用interface或trait 實作 

interface這裡我們就不做過多的說明了,它的原理就是一個類別可以實作多個介面。下面這段程式碼就能夠說明。

interface test1{
    public function connect();
}

interface test2{
    public function contact();
}

// 类可以同时实现多个接口
class myCode implements test1,test2{
    public function connect(){
    echo "test1!";
    }
    public function contact(){
    echo "test2!":
    }
}

下面我們將重點討論trait實作多繼承(其實也不叫多繼承,應該叫類似多繼承的功能)
那什麼是trait呢?
答:看上去既像類又像接口,其實都不是,Trait可以看做類的部分實現,可以混入一個或多個現有的PHP類中,其作用有兩個:表明類可以做什麼;提供模組化實作。 Trait是一種程式碼重複使用技術,為PHP的單一繼承限制提供了一套靈活的程式碼重複使用機制。
那麼怎麼實現trait呢?看下面程式碼:

//基本类
  class basicTest{
    public function test(){
      echo "hello,world\n";
    }
  }
  //traitOne
  trait traitOne{
    public function test(){
      echo "this is trait one";
    }
    public function testOne(){
      echo "one<br />";
    }
  }
  //traitTwo
  trait traitTwo{
    // public function test(){
      // echo "this is trait two!";
    // }
    public function testTwo(){
      echo "Two<br />";
    }
   }
  //继承基本类,并use trait
  class myCode extends basicTest{
    use traitOne,traitTwo;
    public function test(){
      echo "hehaha!!<br />";
    }
  }

  $obj = new myCode();
  $obj->testTwo();

注意:

優先權:自身方法>trait的方法>繼承的方法(就是這樣子的。)
如果我們打開上述程式碼中的註釋,會報錯,因為兩個trait中的方法重名了。

推薦教學:PHP影片教學

#

以上是PHP是單繼承還是多繼承的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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