1

重複の可能性:
インターフェースと抽象クラス(一般的なOO)
インターフェースまたは抽象クラス:どちらを使用しますか?

PHPのインターフェースについていくつか質問がありました:

interfaceそれを実装するクラスの一種の青写真として機能する場合は、abstract parent classes代わりに使用してみませんか?

どのような場合に、のinterface代わりにを使用する方が適切でしょabstract classうか?

どのような場合に?のabstract class代わりに使用する方が適切でしょinterfaceうか?

使用法は正確には何interfaceですか?

4

1 に答える 1

3

大きな違いは、複数の抽象クラスを拡張することはできませんが、複数のインターフェースを実装できることです。

したがって、このように、オブジェクトは複数の目的を持ち、複数のインターフェイスを実装している場合、さまざまな異なるシナリオで使用できます。

したがって、これをより具体的にするために...

interface Wine{
   function isPeppery();
}

interface Dessert{
   function hasBerries(){
}

class PortWine implements Wine, Dessert{
   function isPeppery(){
     returns false;
   }
   function hasBerries(){
     returns true;
   }
}

class BlackForestCake implements Dessert{
   function hasBerries(){
      returns true;
   }
 }

このようにして、アプリケーション全体で複数の目的を果たすオブジェクトを作成できます。

于 2013-01-11T11:11:51.320 に答える