2011-10-11 56 views
1

我有类似:PHP:如何为一个继承另一个具有自己接口的类的扩展接口?

interface IProduct { } 
class Product implements IProduct { } 
class SpecificProduct extends Product { } 

我需要有一个接口,扩展IProduct,我SpecificProduct。 可我只是这样做:

interface ISpecificProduct { } 
class SpecificProduct extends Product implements ISpecificProduct { } 

还是会覆盖IProduct接口?

回答

1

这工作在PHP中,这样一来,刚刚经历:

class SpecificProduct因为它extends Productimplements IProduct了。它同样也是implements ISpecificProduct,它有两个接口。

SpecificProduct现在有两个接口则:

  1. IProduct
  2. ISpecificProduct
0

是的,你可以做到这一点,不,它不会“覆盖”IProduct,它增加了它。

如果你正在某个地方使用ISpecificProduct接口,并想知道在IProduct方法,ISpecificProduct还可以扩展IProduct

interface ISpecificProduct extends IProduct 

在这种情况下,从IProduct方法签名的SpecificProduct收益知识有两种方式。

查看PHP documentation on interfaces了解更多信息。请注意,如果每个具体类都有匹配的接口,那么在对象设计中可能会出现效率低下或不必要的情况。

+0

如果每个类实现一个接口有什么不好? – hakre

+0

@hakre这不是我说的不好 - 坏的是每个接口只有一个实现,每个实现都需要一个接口。这样的设计没有任何好处。 – Nicole

+0

我只是问,谢谢你的反馈。在内部测试中,即使基本代码每个接口只有一个类(首先),通常也会有大量可从接口获益的假对象。所以也许这是需要考虑的事情。 – hakre

相关问题