php物件導向多繼承實現

2022-03-23 02:18:04 字數 1591 閱讀 3450

在php物件導向概念程式設計中,乙個子類只能繼承乙個父類,但是從php5.4後新增traits實現**復用機制變向達到多繼承。trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類中復用方法集。

2、trait會覆蓋繼承的方法,當前類會覆蓋trait方法

<?php  

class

people

function say()

} trait woman

public

function dance()

}trait man

public

function say()

public

function sing()

}

class

child extends people

public

function dance()

}

$obj=new

child();

$obj->walk();

$obj->eat();

$obj->say();

$obj->sing();

$obj->dance();

步行....繼續步行...

女人吃飯

男人說話

小孩唱歌

小孩跳舞

補充:如果兩個 trait 都插入了乙個同名的方法,如果沒有明確解決衝突將會產生乙個致命錯誤。

為了解決多個 trait 在同乙個類中的命名衝突,需要使用 insteadof 操作符來明確指定使用衝突方法中的哪乙個。

以上方式僅允許排除掉其它方法,as 操作符可以將其中乙個衝突的方法以另乙個名稱來引入。

<?php  

class

people

function say()

} trait woman

public

function say()

public

function dance()

}trait man

public

function eat()

public

function say()

public

function sing()

}

class

child extends people

public

function sing()

public

function dance()

}

$obj=new

child();

$obj->walk();

$obj->eat();

$obj->say();

$obj->sing();

$obj->dance();

步行....繼續步行...

男人吃飯

女人說話

小孩唱歌

女人跳舞

物件導向 多繼承

class master object def init self self.kongfu 古法煎餅果子配方 例項變數,屬性 def make cake self 例項方法,方法 print 古法 按照 s 製作了乙份煎餅果子.self.kongfu def dayandai self print ...

php物件導向 繼承

1 繼承是從乙個基類或者父類得到乙個或者多個派生類,也叫作子類的機制。2 建立繼承樹首先找到現有基類元素不適合放在一起的,或者不需要特殊處理的,一般化。3 子類預設繼承父類所有的public和protected方法,不繼承private方法或屬性 構造方法與繼承 1 構造方法需要傳參給父類方法。2 ...

PHP物件導向 繼承

繼承是指子類可以繼承乙個或多個父類的屬性和方法,並可以重寫或新增新的屬性或方法。通過繼承已有的類,可以逐步擴充類的功能,提高 的可重用性。關鍵字 extends php中使用關鍵字extends可實現類的繼承 語法格式 class 子類名 extends 父類名 注意 php不支援多重繼承,即乙個子...