簡體   English   中英

PHP 在擴展時用另一個類替換擴展

[英]PHP replace extends with another class when extending

讓我們采用以下類結構:

class A {
    ... has all the functionalities of A
}

class B extends A {
   ... has all the functionalities of A and B
}

還有另外兩個類結構:

class C extends B {
   ... has all the functionalities of A and B and C
}

class D extends A {
    ... all the functionalities of A, and D
}

如果不允許我修改class A class Bclass B類,我如何輕松創建一個類,這將獲得我所有四個類的所有功能? PHP可以實現這樣的功能嗎?

編輯:

我想這樣做的原因如下,我願意就其他可以實現我想要的結果的方式提出建議:

我有一個模塊,它有幾個我計划在其上構建的類,我不想直接編輯該模塊,但我想向該模塊的多個類添加潛在的功能(這是class A class Bclass B來自)。

所以要編輯class A ,我會創建一個class D ,它擴展它,並添加新功能,或者重寫已經添加的需要在class D重寫的功能。

但是這個模塊中有多個類,它們在結構上與class B相似,我也想潛在地修改它,因此我的class C 但是如果我修改了class D的模塊class A ,我將需要我的新class C來擴展class D而不是class A (希望你還可以關注我:P)

不,在 PHP 中,由於“ 鑽石問題”,不可能從多個父代繼承。 在您的情況下,這意味着您可以擴展c以實現a, b & c ,但您也不能擴展d 由於您無法修改其他類,因此這里沒有正確的解決方案,但我建議您查看特征( https://www.php.net/manual/en/language.oop5.traits.php ),因為這些允許你從多個特征“繼承”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM