PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのインターフェースを説明します。


この記事では、PHPオブジェクト指向プログラミングで最も重要な構造パターンの1つであるPHPインターフェースを利用する方法を理解します。

インターフェイスを使用すると、特定のメソッドの実装方法の複雑さや手順を含めることなく、クラスが実行する必要のあるパブリックメソッドを示すプログラムを作成できます。これは、インターフェイスがメソッド名と引数を定義できるが、メソッドの内容は定義できないことを意味します。インターフェイスを実装するクラスはすべて、インターフェイスで定義されたすべてのメソッドを実装する必要があります。

インターフェイスはクラスと同様に特徴付けられますが、宣言内のクラスフレーズを置き換えるのはインターフェイスキーワードのみであり、コンテンツが定義されているメソッドはありません。

インターフェイスを作成し、簡単な例で実装してみましょう。

<?php
   Interface MyInterface {
      public function getName();
      public function getAge();
   }
   class MyClass implements MyFirstInterface{
      public function getName() {
            echo "My name A".'<br>';
      }
      public function getAge(){
            echo "My Age 12";
      }
   }
   $obj = new MyClass;
   $obj->getName();
   $obj->getAge();
?>

出力:

My name A
My Age 12

説明:

ここでは、コンテンツなしで2つのメソッドgetNameとgetAgeを含むインターフェイスMyFirstInterfaceを宣言しました。次に、クラスMyClassはこのインターフェイスを実装し、要件に応じて使用可能なメソッドを使用します。

インターフェースのいくつかの重要な特徴を学びましょう:

  • インターフェースはコンテンツのないメソッドで構成されます。つまり、インターフェースメソッドは抽象メソッドです。
  • インターフェースのすべてのメソッドは、パブリック可視スコープを持っている必要があります。
  • インターフェースは、クラスが1つのクラスから継承できるため、クラスとまったく同じではありませんが、クラスは1つ以上のインターフェースを実装できます。
  • インターフェース内に変数を含めることはできません。

注:

クラスは複数のインターフェースを実装できますが、拡張できるのは1つのクラスのみであるため、インターフェースを利用して多重継承を実現できます。

簡単な例でこれをテストしてみましょう。

<?php
   interface a{
      public function printData();
   }
   interface b{
      public function getData();
   }
   interface c extends a, b{
      public function addData();
   }
   class d implements c{
      public function printData(){
         echo "I am printing";
      }
      public function getData(){
         echo "I am reading data";
      }
      public function addData(){
         echo "I am adding"
      }
   }
   $myobj = new class d();
   $myobj->printData();
   $myobj->addData();
?>

出力:

I am printing
I am adding

説明:

ここでは、3つのインターフェイス、つまり「インターフェイスa」、「インターフェイスb」、「インターフェイスc」を宣言しました。この場合、インターフェイスcは前の2つのインターフェイスも拡張します。次に、インターフェイスcのみを実装するクラスを宣言しましたが、インターフェイスcが前の2つのインターフェイスを拡張するため、「インターフェイスa」、「インターフェイスb」、および「インターフェイスc」で宣言されたすべてのメソッドをクラスで使用できます。 d。これが、インターフェースを実装することで多重継承を実現する方法です。


  1. PHPのfinalクラスとfinalメソッドを説明します。

    最後のキーワードは、オブジェクト指向プログラミングの概念に関連するPHP5によって導入されました。 ただし、決勝に進む前に、継承の概念を十分に理解していることを確認する必要があります。継承では、別のクラスからクラスを継承できます。また、継承されたクラスの関数をオーバーライドして、最初に提供された動作を置き換えることもできます。場合によっては、クラスが継承されないようにする必要がある場合や、関数がオーバーライドされないようにする必要がある場合があります。これは、クラスと関数の前にfinalキーワードを付けることで、finalで実現できます。これにより、誰かがfinalクラスを拡張したり、fin

  2. Javaのインターフェース

    インターフェースはJavaの参照型です。クラスに似ています。これは、抽象的なメソッドのコレクションです。クラスはインターフェースを実装し、それによってインターフェースの抽象メソッドを継承します。 インターフェイスには、抽象メソッドに加えて、定数、デフォルトメソッド、静的メソッド、およびネストされた型も含まれる場合があります。メソッド本体は、デフォルトのメソッドと静的メソッドにのみ存在します。 インターフェイスの作成は、クラスの作成に似ています。ただし、クラスはオブジェクトの属性と動作を記述します。また、インターフェースには、クラスが実装する動作が含まれています。 インターフェイスを実装す