PHPの抽象メソッドとは何ですか

藏色散人
リリース: 2023-03-06 14:38:02
オリジナル
3430 人が閲覧しました

php 抽象メソッドは、メソッド本体のないクラスで定義されたメソッドを指します。メソッド本体がないということは、宣言時に中括弧とその内容が存在せず、宣言時にメソッド名に直接存在することを意味します。 End with a semicolon. また、抽象メソッドを宣言する場合は、メソッドをキーワード「abstract」で変更する必要があります。

PHPの抽象メソッドとは何ですか

推奨: 「PHP ビデオ チュートリアル

php の抽象メソッドと抽象クラス

1. 抽象メソッドとは何ですか?

メソッドの記述がないクラスで定義したメソッドは、抽象メソッドです。いわゆるメソッド本体なしとは、宣言時に中括弧やその中身はなく、宣言時にメソッド名の後に直接セミコロンを追加することを意味します。また、抽象メソッドを宣言する場合、メソッドにはキーワードも追加する必要があります。 . 「abstract」を変更します。

例:

abstract function fun1(); 
abstract function fun2();
ログイン後にコピー

2. 抽象クラスとは何ですか?

クラスに抽象メソッドが存在する限り、そのクラスは抽象クラスとして定義され、その抽象クラスも "abstract" キーワードで変更する必要があります。非抽象メソッドが存在する場合もあります。と Member 属性ですが、1 つのメソッドが抽象である限り、クラスは抽象クラスとして宣言され、「abstract」で装飾される必要があります。

例:

abstract class demo{
var $test;
abstract function fun1();
abstract function fun2();
}
ログイン後にコピー

3. 抽象クラスの役割は何ですか?

上記の例では、抽象クラス「demo」を定義し、「abstract」で変更しています。このクラスには、メンバー属性「$test」と 2 つの抽象メソッド「fun1」および「fun2」が定義されています「非抽象メソッド fun3() もあります。では、抽象クラスをどのように使用すればよいでしょうか?最も重要な点は、抽象クラスはインスタンス オブジェクトを生成できないため、直接使用できないということです。クラスが直接使用できないことは何度も述べましたが、クラスを通じてインスタンス化されたオブジェクトを使用しているため、抽象クラスはインスタンス オブジェクトを生成できません。抽象クラスを宣言するのはどうですか?

私たちは、抽象メソッドをサブクラスのオーバーロードのテンプレートとして使用します。抽象クラスの定義は、仕様の定義と同じです。この仕様には、サブクラスが準拠する必要があります。サブクラスは抽象クラスを継承します。その後、抽象クラスに抽象メソッドを実装します。サブクラスのニーズに応じて。

サブクラスは、親クラスのすべての抽象メソッドを実装する必要があります。そうでない場合、サブクラスに抽象メソッドがまだある場合、サブクラスは依然として抽象クラスであり、インスタンス化できません。なぜ開始する必要があるのでしょうか。抽象クラスからの継承はどうなるのでしょうか?

なぜなら、いくつかの関数を実装したい場合は、抽象クラスから継承する必要がある場合があり、そうしないとこれらの関数を実装できなくなります。抽象クラスを継承する場合は、抽象メソッドをクラス;

例:

abstract class mode{
  var $test;
  abstract function fun1();
  abstract function fun2();
  function fun2(){
    ....
  }
}
 
$mode = new mode(); //抽象类只能为产生实例对象,所以这样做是错的,实例化对象交给子类
class test extends mode{
   function fun1(){
    ....
   }
   
   function fun2(){
   ....
   }
}
$test = new test(); //子类可以实例化对象,因为实现了所有父类的抽象化方法
ログイン後にコピー

以上がPHPの抽象メソッドとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート