真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php中類繼承與接口繼承的區(qū)別有哪些

今天小編給大家分享一下php中類繼承與接口繼承的區(qū)別有哪些的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

成都網(wǎng)站建設(shè)、網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)建站已向上千企業(yè)提供了,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)絡(luò)營銷等服務(wù)!設(shè)計與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗,合理的價格為您打造企業(yè)品質(zhì)網(wǎng)站。

在PHP中,類繼承與接口繼承的區(qū)別是:PHP類不支持多繼承,也就是子類只能繼承一個父類,但是支持多層次繼承,而接口支持多繼承,也就是接口可以繼承一個或者多個接口。

本文操作環(huán)境:Windows10系統(tǒng)、PHP7.1版、Dell G3電腦。

php中類繼承與接口繼承的區(qū)別是什么

PHP類繼承:

1、PHP類不支持多繼承,也就是子類只能繼承一個父類,但是支持多層次繼承

比如:

class frist{
  public function __construct(){
    echo "我是第一個類。","
";   }   public function printer(){     echo "frist","
";   } } class seconds extends frist{} class third extends seconds{} $obj = new third(); $obj->printer();

結(jié)果:這是第一個類。 frist 第二個類和第三個類沒有重寫printer()方法,第三個類實例化后可以調(diào)用printer()方法。

2、繼承權(quán)限問題

(1)父類private方法不可被繼承,父類私有化

(2)父類protected方法可以被繼承,但不能被實例化對象調(diào)用,如果調(diào)用會出現(xiàn)" Call to protected method frist::printer()"的報錯,父類對此方法置于保護模式下

(3)父類public方法可以被繼承、可以被實例化對象調(diào)用,屬于公開方法

(4)子類可重寫父類public或者protected的方法,不能重新private的方法,如果同名只是在本類重新聲明

3、接口類繼承

(1) 接口支持多繼承,接口類的方法不需要實現(xiàn)比如:

interface frist{
  public function ex1();
}
interface seconds{
  public function ex2();
}
interface third extends frist,seconds{
  public function ex3();
}
class fourth implements third{
  public function ex1(){}
  public function ex2(){}
  public function ex3(){}
}
class fourth implements frist,seconds{
  public function ex1(){}
  public function ex2(){}
}

(2) 接口類的方法權(quán)限都是public,默認public

(3)引用接口的類必須實現(xiàn)接口的所有方法,否則會報錯,比如:"Class e contains 1 abstract method and must therefore be declared abstract or implement the remaining methods",即:e類包含1個抽象方法,因此必須聲明抽象或?qū)崿F(xiàn)其余方法。

4、抽象類:只要一個類里面有一個方法是抽象方法,那么這個類就要定義為抽象類

(1)抽象類繼承抽象類不能重寫父類方法。

(2)抽象類繼承是對父類的方法的拓展。

(3)繼承的派生類當中要把所有抽象方法重載才能實例化。

(4)抽象類實現(xiàn)的普通發(fā)放,可以在非抽象子類中直接調(diào)用。

5、接口和抽象類的異同點(引用抽象類與接口區(qū)別)

(1)對接口的使用方式是通過關(guān)鍵字implements來實現(xiàn)的,而對于抽象類的操作是使用類繼承的關(guān)鍵字exotends實現(xiàn)的

(2) 接口沒有數(shù)據(jù)成員,但是抽象類有數(shù)據(jù)成員,抽象類可以實現(xiàn)數(shù)據(jù)的封裝。

(3) 接口沒有構(gòu)造函數(shù),抽象類可以有構(gòu)造函數(shù)。

(4)接口中的方法都是public類型,而抽象類中的方法可以使用private、protected或public來修飾。

(5) 一個類可以同時實現(xiàn)多個接口,但是只能實現(xiàn)一個抽象類。

(6) 相同點:函數(shù)體內(nèi)不能寫任何東西,比如:function getName();即可。

以上就是“php中類繼承與接口繼承的區(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站題目:php中類繼承與接口繼承的區(qū)別有哪些
文章轉(zhuǎn)載:http://weahome.cn/article/jogssg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部