站長資訊網
        最全最豐富的資訊網站

        php是多繼承還是單繼承

        php是單繼承。php是不支持多繼承的,但是php可以通過使用interface或者trait實現多繼承,如【interface test1 {public function connect();}interface test2 …】。

        php是多繼承還是單繼承

        本文操作環境:windows10系統、php 7、thinkpad t480電腦。

        php是單繼承還是多繼承?可能你也被這個問題困惑很久了吧。首先,PHP是單繼承,他是不支持多繼承的。面向對象的特點是封裝、繼承、多態。這里的繼承是指類與類之間的繼承關系,可以使用關鍵字extends實現,這里只可以繼承一個類。

        那么,php是否可以實現多繼承呢?答案是可以的。

        php可以用兩種方式實現多繼承。一個是使用interface實現。還有一個就是使用trait實現。

        第一種:關于使用interface實現,它的原理就是一個類可以實現多個接口,我們可以定義多個接口類,如下:

        interface test1 { 	public function connect(); }
        interface test2 { 	public function contact(); }

        一個類實現多個接口:

        class MyClass implements test1,test2 { 	public function connect() { 		echo "test1"; 	} 	public function contact() { 		echo "test2"; 	} }

        第二種:使用trait實現。其實trait并不算是多繼承,應該叫做類似多繼承的功能。

        什么是trait呢?

        答:看上去既像類又像接口,其實都不是,Trait可以看做類的部分實現,可以混入一個或多個現有的PHP類中,其作用有兩個:表明類可以做什么;提供模塊化實現。Trait是一種代碼復用技術,為PHP的單繼承限制提供了一套靈活的代碼復用機制。

        //基本類   class basicTest{     public function test(){       echo "hello,worldn";     }   }    //traitOne   trait traitOne{     public function test(){       echo "this is trait one";     }     public function testOne(){       echo "one";     }   }    //traitTwo   trait traitTwo{     // public function test(){       // echo "this is trait two!";     // }      public function testTwo(){       echo "Two";     }   }    //繼承基本類,并use trait   class myCode extends basicTest{     use traitOne,traitTwo;     public function test(){       echo "hehaha!!";     }   }    $obj = new myCode();   $obj->testTwo();

        注意:

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

        如何解決trait中方法重名的情況?

        //使用demo1和demo2的方法,但并不是導入命名空間 //demo1和demo2種都有hello方法     use Demo1,Demo2{         //將Demo1的hello方法替換Demo2的hello方法         Demo1::hello insteadof Demo2;         //給Demo2的hello方法起別名         Demo2::hello as Demo2Hello;     } //下方調用的時候 return $this->hello(); // 使用demo1的方法 return $this->Demo2Hello();  //使用demo2的方法

        推薦學習:php培訓

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品国产三级国产专播 | 成人午夜精品视频在线观看 | 久久久久久一区国产精品| 亚洲嫩草影院久久精品| 久久99国产精品99久久| 一级香蕉精品视频在线播放| 欧美精品免费观看二区| 99久久伊人精品综合观看| 精品99久久aaa一级毛片| 日韩精品一区二区三区视频| 亚洲精品国精品久久99热一| 无码国产精品一区二区免费vr| 久久精品无码专区免费东京热| 成人无码精品1区2区3区免费看| 国产成人精品免费视频网页大全| 中文字幕一区二区精品区| 久久久久人妻一区精品果冻| 亚洲国产精品国自产拍AV| 99精品视频在线| 欧美精品一区二区三区在线| 91精品一区国产高清在线| 精品人妻少妇一区二区三区在线| 亚洲永久精品ww47| 精品一区二区三区免费| 亚洲国产精品视频| 国产精品2019| 亚洲AV无码成人精品区狼人影院| 国精品午夜福利视频不卡麻豆| 国产精品1024视频| 精品深夜AV无码一区二区| 精品久久综合1区2区3区激情| 国产精品无码a∨精品| 精品一区二区三区免费观看| 国产精品分类视频分类一区| 最新精品国偷自产在线| 国产内地精品毛片视频| 国产精品禁18久久久夂久| 一本色道久久88综合日韩精品| 国产精品美女久久久网AV| 国产午夜精品久久久久免费视| 亚洲精品无码AV中文字幕电影网站|