PHP:正确的接口顺序和类继承

时间:2012-10-18 04:50:26

标签: php inheritance interface

我有一个抽象的父类P,以及两个具体的子类C1和C2。 C1和C2从P延伸。

与此同时,我有三个接口,iP,iC1和iC2。 iC1和iC2从iP扩展。

显然每个子类都应该实现它的各自接口,但是抽象父类也应该实现它的接口吗?

鉴于我只会实例化具体类,并且这些类被绑定到iP(凭借接口继承层次结构),我不确定我是否真的需要P来实现iP?

另一种选择是我在接口端废弃继承层次结构......

2 个答案:

答案 0 :(得分:2)

接口的精神允许解耦,换句话说,将“什么”与“如何”分开。对于每个级别的hava和界面来说,这并不是一个非常好的练习,因为你在问题中没有任何意义。

您可以在iP中拥有您的类将要实现的所有方法的签名,以及抽象类P,它部分地实现要在子类中重用的公共方法以及您计划的方法的签名稍后在你的孩子课上写。

通过这种方式,足以使C1和C2扩展您的抽象类P,因为您被迫实现在接口和抽象类中声明的所有方法。

答案 1 :(得分:0)

如果不了解商业模式,很难回答。 但是如果你有一个抽象类,我最好的猜测是你不需要C1和C2的接口,只需要一个P实现的接口,并声明它的抽象方法。然后子类扩展P。