ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向の抽象クラス、インターフェイス、最終クラス定数_PHP チュートリアル
この記事では、PHP の抽象クラス、インターフェイス、final、クラス定数に関する基本的なチュートリアルを紹介しています。詳しく知りたい人は参照してください。 PHPオブジェクト指向
1.抽象クラス(abstract)
実際の開発プロセスでは、一部のクラスはインスタンス化する必要がありません。たとえば、以前に学習した一部の親クラスは主にサブクラスに継承されるため、コードの再利用性が向上します
。
文法構造:
コードは次のとおりです | コードをコピー |
抽象クラス クラス名 { 属性 $name; Method(){} //メソッドは抽象修飾子関数にすることもできます。メソッド名(){} } |
例:
コードは次のとおりです | コードをコピー |
抽象クラスの動物{ パブリック $name; public $age; // 抽象メソッドは主にサブクラスを実装するためのメソッド本体を持つことができません; 抽象パブリック関数 cry(); // 抽象クラスには抽象メソッドとインスタンス クラスのメソッドを含めることができます パブリック関数 getname(){ echo $this->name; } } クラス猫{ パブリック関数 cry(){ 「ok」をエコーします; } } |
理解: 動物クラスは実際には抽象的な概念であり、一部の動物に共通する属性や行動を規定していますが、実際にはそれ自体にはそれらの属性や行動はありません。別の例: 交通機関、植物など
注:
1. クラスが abstract で変更された場合、そのクラスは抽象クラスになります。メソッドが abstract で変更された場合、そのメソッドはメソッド body => abstract function cry(); を持つことはできません。 {} も許可されていません
2. 抽象クラスはインスタンス化してはなりません。抽象クラスには抽象メソッドは必要ありませんが、クラスに抽象メソッドが含まれる場合は、クラスを抽象クラスとして宣言する必要があります。
3. クラスが別の抽象クラスを継承する場合、サブクラスはその抽象クラス内のすべての抽象メソッドを実装する必要があります (それ自体も抽象クラスとして宣言されている場合を除く)。
2. インターフェース
インターフェースは、いくつかの未実装のメソッドを一緒にカプセル化するもので、クラスがそれらを使用する必要がある場合、特定の状況に応じてこれらのメソッドを書き出すことができます。
文法構造
コードをコピー | |||||||||||||
//インターフェース内のメソッドにはメソッド本体を含めることはできません; } インターフェースの実装方法 class クラス名はインターフェイス名を実装します { } |
コードをコピー | |||||||||
パブリック関数 start(); パブリック関数 stop(); } // カメラクラスを記述してインターフェースを実装させます //クラスがインターフェースを実装する場合、クラスはインターフェースのすべてのメソッドを実装する必要があります クラス Camera は iUsb{ を実装します public function start(){ echo 'カメラ開始作業'; } パブリック関数 stop(){ echo 'カメラ停止作業'; } } //携帯電話のクラスを作成します クラス Phone は iUsb を実装します{ public function start(){ echo '電話での仕事'; } パブリック関数 stop(){ echo '電話は仕事を停止します'; } } $c=新しいカメラ(); $c->start(); $p=新しい電話(); $p->start(); |
クラスA{ | |||||
} } クラス B は A を拡張します{ //ここでの親クラスの getrate メソッドは Final を使用しているため、ここで getrate をオーバーライドすることはできません //パブリック関数 getrate($salary){ // $給与*0.01を返します ; //} } 3. Final は属性の変更には使用できません
|