抽象メソッドと抽象クラス
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() も定義されています。では、
抽象クラスを使用するにはどうすればよいでしょうか?最も重要な点は、抽象クラスはインスタンス オブジェクトを生成できないため、直接使用できないことです。クラスを直接使用できないことは、クラスを通じてインスタンス化されたオブジェクトを使用しているため、
直接使用できます。 >イメージクラスはインスタンスオブジェクトを生成できません。抽象クラスを宣言するとどうなるでしょうか?抽象メソッドをサブクラスのオーバーロードのテンプレートとして使用します
。抽象クラスを定義することは、サブクラスが準拠することを要求します
抽象関数 fun2(); 関数 fun3(){ } } $demo =new Demo(); //Abstract クラスはインスタンス オブジェクトを生成できるため、インスタンス化されたオブジェクトはサブクラスに渡されます。
class Test extends Demo{function fun1(){
…
}
function fun2 (){
…
}
}
$test=new Test(); //サブクラスはオブジェクトをインスタンス化できます。親クラスが実装されています
?>