この記事では主に PHP の抽象クラスとインターフェイスの使用法について説明します。最初に抽象メソッドの概念を説明します。
1. 抽象メソッド
クラスにおいて、メソッド本体のないメソッドは抽象メソッドです。
abstract 可視性関数メソッド名 (パラメータ 1,...); // 可視性が明示的に指定されていない場合は、デフォルトで public
になります:public function hello($args); abstract function work(); // 修饰符abstract,也可以省略
2。クラス名:抽象クラス抽象クラスはインスタンス化できず、継承のみが可能です。
抽象クラスは、必ずしも抽象メソッドを持つ必要はありません。
抽象メソッドの可視性をプライベートにすることはできません
抽象メソッドはサブクラスにあるため、書き直す必要があります。
抽象クラスを使用する必要があるのはどのような場合ですか?
メソッドはあるのですが、このメソッドをサブクラスに含める必要がある場合は、抽象メソッドにカプセル化し、クラスを抽象クラスにする必要があります。
特定のメソッドをコントロールのサブクラスにカプセル化する必要がある場合、抽象メソッドを使用できます。
継承のみが可能でインスタンス化できないクラスを制御する必要がある場合。
abstract class People{ protected $age=22; public $height=1.70; abstract function work(); } class PhpTeacher extends People{ function work(){ echo "真不是php"; } }
クラス内のすべてのメソッドが抽象メソッドであり、メンバー属性を持たない場合、このクラスはインターフェースと呼ばれます。
interface Common{ abstract function work(); abstract function test($args); }
インターフェースの継承インターフェースインターフェースのインターフェース名は親インターフェース名を拡張します
注: クラスの継承は単一継承 (親クラスは 1 つだけです) ですが、インターフェースの継承はクラスからインターフェースへの多重継承です。も多重実装されています。
インターフェイスの実装:
クラスはインターフェイス クラスを実装します クラス名はインターフェイス名 1、インターフェイス名 2、...を実装します。
継承されたクラスは同時にインターフェイスを実装します:
クラスは親クラスを継承します同時に実装インターフェースクラス クラス名は拡張します 親クラス名はインターフェース名を実装します
4. 抽象クラスとインターフェースの違い
インターフェースは特別な抽象メソッドのみを含みます。 、メンバープロパティはありません。
クラスがインターフェースを実装するとき (implements)、インターフェース内のすべてのメソッドを完全に実装する必要があります。クラスが抽象クラスを継承 (拡張) するときは、必要な抽象メソッドを書き換えるだけで済みます。利用される。
抽象クラスは単一の継承のみを持つことができますが、インターフェースには複数の継承があり、インターフェースのクラスの実装にも複数の実装があります。
関連推奨事項:
以上がPHP での抽象クラスと抽象インターフェイスの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。