ホームページ  >  記事  >  バックエンド開発  >  PHPオブジェクト指向入門(12)抽象メソッドと抽象クラス_PHPチュートリアル

PHPオブジェクト指向入門(12)抽象メソッドと抽象クラス_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:44:06702ブラウズ

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


コードをコピーします

コードは次のとおりです:


abstract class Demo{
var $test;
abstract function fun2(); (){

… . } }
上記の例では、抽象クラス「Demo」が定義され、「abstract」で変更されています。このクラスには、メンバー属性「$test」と 2 つの抽象メソッドが定義されています。 fun1" と "fun2" にも非抽象メソッド fun3() があります。では、抽象クラスを使用するにはどうすればよいでしょうか。最も重要な点は、抽象クラスはインスタンス オブジェクトを生成できないため、直接使用できないことです。クラスを介してインスタンス化されたオブジェクトを使用しているため、抽象クラスを宣言することはできません。インスタンスオブジェクトを生成するための抽象クラス?抽象クラスをオーバーロードするためのテンプレートとして抽象メソッドを使用します。この仕様は、サブクラスが抽象クラスを継承した後、必要に応じて実装されることを要求します。サブクラス。サブクラスは親クラスのすべての抽象メソッドを実装する必要があります。そうしないと、サブクラスにまだ抽象メソッドが存在するため、サブクラスは抽象クラスのままでインスタンス化できません。なぜ、抽象クラスから継承する必要があるのでしょうか。場合によっては、一部の関数を実装するために抽象クラスから継承する必要があるため、そうしないと、これらの関数を実装できなくなります。
コード スニペット



コードをコピーします

コードは次のとおりです:


abstract function fun1();
abstract function fun2();
abstract function fun2();
}
}
$ Demon=new Demo(); //抽象クラスはインスタンス オブジェクトを生成できるため、インスタンス化されたオブジェクトはサブクラスに渡されます
class Test extends Demo{
function fun1() {

}
function fun2 (){

}
} $test=new Test(); // サブクラスは親クラスのすべての抽象メソッドを実装しているため、オブジェクトをインスタンス化できます?>

http://www.bkjia.com/PHPjc/320627.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320627.html

技術記事

抽象メソッドと抽象クラス OOP 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。そして抽象メソッド...





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