这更像是一个简化开发的问题,也是一个最佳实践问题。
<?php
class FOO implements Iterator
{
....
}
class BAR extends FOO
{
....
}
class OTHER extends FOO implements Iterator
{
....
}
?>
在上面的例子中,BAR 是否也有 Iterator 接口?如果是这样,是否每次都定义接口更好(就像 OTHER 一样),还是将 BAR 定义视为最佳实践?
我已经简化了这个例子,因为我们使用的是 FOO 的抽象类,我们希望确保它具有 Iterator 支持,然后可以在 BAR 类中覆盖它以在元素之间移动。我们希望强制为子类定义一些函数,但希望适当地继承其他方法,并且仍然使用基本的迭代器,而不必在子类上定义接口。