ホームページ > php教程 > php手册 > PHP オブジェクト指向ガイド (12) 抽象メソッドと抽象クラス

PHP オブジェクト指向ガイド (12) 抽象メソッドと抽象クラス

WBOY
リリース: 2016-06-13 12:21:31
オリジナル
923 人が閲覧しました

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



コードをコピー

コードは次のとおりです: abstract class Demo{

var $test;

抽象関数 fun1();
関数 fun3(){
}


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

クラスの後に、抽象クラスに抽象メソッドを実装します。サブクラスのニーズに応じて。サブクラスは親クラスにすべての抽象メソッドを実装する必要があります。そうでない場合、サブクラスは依然として抽象クラスであり、抽象クラスから開始する必要があるのはなぜでしょうか。継承?いくつかの関数を実装したい場合は、抽象クラスから継承する必要がある場合があります。そうしないと、これらの関数を実装できなくなります。
抽象クラスを継承する場合は、そのクラスに抽象メソッドを実装する必要があります。 🎜>コード スニペット



コードをコピー

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


<
抽象クラス デモ{
var $test;

抽象関数 fun2(); 関数 fun3(){ } } $demo =new Demo(); //Abstract クラスはインスタンス オブジェクトを生成できるため、インスタンス化されたオブジェクトはサブクラスに渡されます。

class Test extends Demo{

function fun1(){

}
function fun2 (){

}
}
$test=new Test(); //サブクラスはオブジェクトをインスタンス化できます。親クラスが実装されています
?>


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