2013-01-09 149 views
5

这是一个更容易解决问题的问题,也是一个最佳实践问题。PHP扩展类是否继承接口?

<?php 
class FOO implements Iterator 
{ 
    .... 
} 

class BAR extends FOO 
{ 
    .... 
} 

class OTHER extends FOO implements Iterator 
{ 
    .... 
} 
?> 

在上面的例子中,BAR是否也有Iterator接口?如果是这样,是不是每次都定义接口(比如OTHER)还是将BAR定义视为最佳实践?

我简化了这个例子,因为我们使用的是FOO的抽象类,我们希望确保具有Iterator支持,然后可以在BAR类中重写元素之间的移动。我们希望强制为子类定义一些函数,但是要适当地继承其他方法,并且仍然使用基本迭代器,而不必在子类上定义接口。

回答

5

子类将继承Iterator接口的超类实现,它可以自由覆盖。你不需要明确地说implements Iterator,但是如果你这样做,那么你必须在子类中实现所有接口的方法。

+0

谢谢。这是我的预期,但没有进行详细的测试,我不确定并想验证我的假设。 –