ホームページ >バックエンド開発 >PHPの問題 >PHPの抽象メソッドを理解する方法

PHPの抽象メソッドを理解する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-11-04 14:00:172532ブラウズ

PHP 抽象メソッドの理解: 1. OOP 言語では、各クラスには、外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは継承を容易にするために導入されます。2. メソッドで定義されています。メソッド本体のないクラス内のメソッドは抽象メソッドです。

PHPの抽象メソッドを理解する方法

php の抽象メソッドは次のとおりです:

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

抽象メソッドとは何ですか?メソッド本体を持たずにクラス内で 定義するメソッドは、抽象メソッド です。いわゆるメソッド本体がないということは、メソッド宣言内に波括弧やコンテンツがなく、宣言内に直接存在することを意味します。メソッド名の後にセミコロンを追加します。また、抽象メソッドを宣言する場合は、キーワード「abstract」を追加して変更します。

abstract function fun1();
abstract function fun2();

上記の例は、「abstract」でメソッド本体が変更されていない抽象メソッドです。 " fun1()" と "fun2()" では、抽象メソッドの後にセミコロンがあることを忘れないでください。では、抽象クラスとは何でしょうか?クラス内のメソッドが抽象メソッドである限り、そのクラスは抽象クラスとして定義する必要があり、その抽象クラスも「abstract」キーワードで変更する必要があります。抽象クラスにはメソッドとメンバーが存在できます。メソッドが抽象メソッドの場合、クラスは抽象クラスとして宣言され、「abstract」で装飾される必要があります。

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

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

<?
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の抽象メソッドを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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