PHP Extended类是否也继承了接口?

时间:2013-01-09 17:54:04

标签: php oop inheritance

这是一个简化发展的问题,也是一个最佳实践问题。

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

class BAR extends FOO
{
    ....
}

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

在上面的例子中,BAR还有Iterator接口吗?如果是这样,每次无论如何定义界面(如OTHER)或将BAR定义视为最佳实践是否更好?

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

1 个答案:

答案 0 :(得分:6)

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