#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター違い: 1. インターフェイスのキーワードはimplements、抽象クラスのキーワードはextends; 2. インターフェイスはメンバ変数を宣言できませんが、抽象クラスは宣言できます; 3. インターフェイスにはコンストラクタがありませんが、抽象クラスにはあります。 4. インターフェイス メソッド デフォルトはパブリック型ですが、抽象クラスはそうではありません; 5. クラスは同時に複数のインターフェイスを実装でき、1 つの抽象クラスからのみ継承できます。
#違い:
#1. インターフェースはキーワードimplementsを通じて使用されます。抽象クラスを使用するには、キーワード extends を使用します。もちろん、キーワード extends を使用してインターフェイスを継承することもできます。 2. メンバー変数 (クラス静的変数を含む) はインターフェイス内で宣言できませんが、クラス定数は宣言できます。さまざまなタイプのメンバー変数を抽象クラスで宣言して、データのカプセル化を実装できます。 (さらに、JAVA インターフェースのメンバー変数は public static Final 型として宣言する必要があります)<?php abstract class Father { function meth1() { echo "meth1...<br>"; } abstract function meth2(); public $var1="var1"; public static $var2="var2"; const Var3="Var3"; } class Son extends Father { function meth2() { echo "meth2 of Son...<br>"; } } $s=new Son(); echo $s->var1."<br>"; echo Father::$var2."<br>"; echo Father::Var3."<br>"; Interface IFather { //public $iVar1="iVar1"; 此处接口定义中不能包含成员变量 //public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量 const iVar3="iVar3"; function iMeth1(); } Class ISon implements IFather { function iMeth1() { echo "iMeth1...<br>"; } } $is=new ISon(); echo IFather::iVar3; ?>3. インターフェースにはコンストラクターがありませんが、抽象クラスにはコンストラクターを持つことができます。 4. インターフェイスのメソッドはデフォルトでパブリック型ですが、抽象クラスのメソッドはプライベート、プロテクト、パブリックに変更できます。 5. クラスは複数のインターフェイスを同時に実装できますが、クラスは 1 つの抽象クラスからのみ継承できます。
抽象クラスまたはインターフェイス。
PHP ビデオ チュートリアル 」
以上がPHPの抽象クラスとインターフェースの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。