すべての PHP 面接で第 1 の質問


私は PHP プログラマーで、多くの面接を受けてきました.それらのそれぞれに、常​​に1つの質問が出てくることに気付きました.

その質問は次のとおりです.

抽象クラスとインターフェースの違いは何ですか?

この質問に対する答えは簡単で、候補者がオブジェクト指向プログラミングに精通していることを証明します.

それでは、次の 2 つを比較してみましょう.

抽象クラス


  • 一部の機能を提供し、残りを派生クラスに残すことができます.
  • 派生クラスは、基本クラスで定義された具象関数をオーバーライドする場合とオーバーライドしない場合があります.
  • 抽象クラスから拡張された子クラスは、論理的に関連している必要があります.

  • クラスを抽象クラスとして宣言するには、単に abstract キーワードの前に class を付けます.

    インターフェース


  • 機能を含めることはできません.メソッドの定義のみが含まれています.
  • 派生クラスは、インターフェースで定義されたすべてのメソッドのコードを提供する必要があります.
  • インターフェイスを使用して、まったく異なるクラスや関連のないクラスを論理的にグループ化できます.

  • インターフェイスを宣言するには、interface キーワードを使用します

    interface Template
    {
        public function setVariable($name, $var);
        public function getHtml($template);
    }