繁体   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