2013-01-09 15 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インターフェイスの実装を継承します.Iteratorインターフェイスは自由にオーバーライドできます。 implements Iteratorと明示的に言う必要はありませんが、そうする場合は、すべてのインターフェースのメソッドをサブクラスに実装する必要があります。

+0

ありがとうございました。それは私が期待していたものですが、詳細なテストがなければ、私は確信が持てませんでした。 –

関連する問題