7

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

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

class BAR extends FOO
{
    ....
}

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

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

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

4

1 回答 1

7

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

于 2013-01-09T17:55:53.640 回答