ホームページ  >  記事  >  バックエンド開発  >  PHPの抽象メソッドと抽象クラスの使用例を詳しく解説

PHPの抽象メソッドと抽象クラスの使用例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-03 09:19:111603ブラウズ

OOP 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは、継承の便宜のために導入されています。その使用法を説明する前に、まず抽象クラスの定義を見てみましょう。

抽象メソッドと抽象クラス
OOP 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは継承を容易にするために導入されています。その使用法を説明する前に、まず抽象クラスと
抽象メソッドの定義を見てみましょう。
抽象メソッドとは何ですか?メソッド本体を持たずにクラス内で定義するメソッドは抽象メソッドです。いわゆるメソッド本体は、メソッドが宣言されるときに中括弧やその中の内容はなく、メソッド名の直後にあることを意味します。抽象メソッドを宣言する場合は、セミコロンで終了し、キーワード「abstract」を追加します。
例:
abstract function fun2(); "abstract" メソッド本体のない抽象メソッド "fun1()" と "fun2()" があります。抽象メソッドの後にセミコロンがあることを忘れないでください。抽象クラスとは何ですか?クラス内に抽象メソッドが存在する限り、そのクラスは抽象クラスとして定義する必要があり、また抽象クラス内で「abstract」キーワードを使用して抽象クラスを変更する必要があります。
属性
は抽象ではありませんが、1つのメソッドが抽象である限り、クラスは抽象クラスとして宣言され、「abstract」で修飾されなければなりません。
例:
コードスニペット

abstract class Demo{ 
var $test; 
abstract function fun1(); 
abstract function fun2(); 
function fun3(){ 
… . 
} 
}

上記の例では、抽象クラス「Demo」が定義され、「abstract」で変更され、メンバー属性「$test」と 2 つの抽象メソッドが定義されています。 「fun2」にも非抽象メソッド fun3() があります。では、抽象クラスをどのように使用すればよいでしょうか。最も重要な点は、抽象クラスはインスタンス
オブジェクト
を生成できないため、直接使用できないことです。クラスを介してインスタンス化されたオブジェクトを使用するため、クラスはインスタンス オブジェクトを生成できません。 . 抽象クラスを宣言すると何の役に立つのでしょうか?抽象メソッドをサブクラス のオーバーロード のテンプレートとして使用します。この仕様は、サブクラスが抽象クラスを継承し、必要に応じて抽象クラスに実装することを要求します。サブクラス。サブクラスは親クラスのすべての抽象メソッドを実装する必要があります。そうしないと、サブクラスにまだ抽象メソッドが存在するため、サブクラスは抽象クラスのままでインスタンス化できません。なぜ、抽象クラスから継承する必要があるのでしょうか。いくつかの関数を実装したい場合は、抽象クラスから継承する必要がある場合があります。そうしないと、これらの関数を実装できなくなります。抽象クラスを継承する場合は、そのクラスに抽象メソッドを実装する必要があります。スニペット
<?php 
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(); //子类可以实例化对象,因为实现了父类中所有抽象方法 
?>


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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。