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 に答える