この記事では、PHP の抽象クラスとインターフェイスの違いと選択肢を紹介します。必要な方は参考にしてください。
違い: インターフェイスの使用はスルーです。キーワードは実装します。抽象クラスを使用するには、キーワード extends を使用します。もちろん、キーワード extends を使用してインターフェイスを継承することもできます。 2. メンバー変数(クラス静的変数を含む)はインターフェイス内で宣言できませんが、クラス定数は宣言できます。さまざまなタイプのメンバー変数を抽象クラスで宣言して、データのカプセル化を実装できます。
[php]<?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;
?>
5. クラスは同時に複数のインターフェースを実装できますが、クラスは 1 つの抽象クラスからのみ継承できます。
抽象クラスまたはインターフェイス。 (
主な違いは、抽象化は 1 つだけ継承できるのに対し、インターフェースは複数のものが継承できることです) 密接に関連するいくつかのモデルで採用されるモデルを作成したい場合オブジェクトの場合は、抽象クラスを使用できます。無関係な多数のオブジェクトに採用される機能を作成する場合は、インターフェイスを使用します。
関連推奨事項:
以上がPHP の抽象クラスとインターフェイスの違いと選択肢の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。