#1. 抽象メソッドとは何ですか?
メソッド本体のないクラスで定義したメソッドは、抽象メソッドです。いわゆるメソッド本体なしとは、宣言時に中括弧やその中身はなく、宣言時にメソッド名の後に直接セミコロンを追加することを意味します。また、抽象メソッドを宣言する場合、メソッドにはキーワードも追加する必要があります。 . 「abstract」を変更します。 例:abstract function fun1(); abstract function fun2();
2. 抽象クラスとは何ですか?
クラス内に抽象メソッドであるメソッドが存在する限り、そのクラスは抽象クラスとして定義されます。また、抽象クラスは「abstract」キーワードを使用して変更する必要があります。抽象クラスには、抽象であるかどうかに関係なく、メソッドとメンバー属性が存在しますが、1 つのメソッドが抽象である限り、そのクラスは抽象クラスとして宣言され、「abstract」で装飾される必要があります。 関連する推奨事項: 「PHP チュートリアル 」
例:abstract class Demo { var $test; abstract function fun1(); abstract function fun2(); function fun3(){ ... } }
3. 抽象クラスの役割は何ですか?
上記の例では、抽象クラス「demo」が定義され、「abstract」で変更されており、このクラスには、メンバー属性「$test」と 2 つの抽象メソッド「fun1」が定義されています。 「fun2」を含む非抽象メソッド fun3() もあります。それでは、抽象クラスをどのように使用するのでしょうか?最も重要な点は、抽象クラスはインスタンス オブジェクトを生成できないため、直接使用できないということです。クラスが直接使用できないことはこれまで何度も述べましたが、クラスを通じてインスタンス化されたオブジェクトを使用します。<? abstract class Demo { var $test; abstract function fun1(); abstract function fun2(); function fun3() { ... } } $demo=new Demo(); //抽象类不能产生实例对象,所以这样做是错的,实例化对象交给子类 class Test extends Demo { function fun1() { ... } function fun2() { ... } } $test = new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法 ?>
4. 抽象クラスの特性:
抽象クラスはインスタンス化できず、継承のみが可能です。 抽象クラスは必ずしも抽象メソッドを持つ必要はありません。抽象メソッドを持つクラスは抽象クラスでなければなりません。 抽象メソッドの可視性をプライベートにすることはできません。 抽象メソッドはサブクラス内にあるため、書き直す必要があります。5. 抽象クラスを使用する必要があるのはどのような場合ですか?
メソッドはあるのですが、メソッド本体の書き方がわかりません このメソッドをサブクラスに含める必要がある場合、抽象メソッドにカプセル化され、クラスは抽象クラスになりますクラス。 特定のメソッドをコントロール サブクラスにカプセル化する必要がある場合は、抽象メソッドを使用できます。 継承のみが可能でインスタンス化できないクラスを制御する必要がある場合。6. インターフェース
クラス内のすべてのメソッドが抽象メソッドでメンバー属性を持たない場合、そのクラスはインターフェースと呼ばれます。interface Common{ abstract function work(); abstract function test($args); }
7. 抽象クラスの違いそして、interface
Interface は、インターフェイスに抽象メソッドのみが含まれ、メンバー属性が含まれない特別な抽象クラスです。クラスがインターフェイスを実装する場合、インターフェイス内のすべてのメソッドを完全に実装する必要があります。クラスが抽象クラスを継承 (拡張) する場合、使用する必要がある抽象メソッドを書き直すだけで済みます。抽象クラスは単一の継承のみを持つことができますが、インターフェイスには複数の継承があり、インターフェイスのクラスの実装にも複数の実装があります。以上がPHP抽象クラスの役割は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。