ホームページ >バックエンド開発 >PHPの問題 >PHPの抽象クラスと静的メソッドとは何ですか

PHPの抽象クラスと静的メソッドとは何ですか

王林
王林オリジナル
2020-09-29 09:36:142186ブラウズ

php の抽象クラスは、クラスと抽象メソッドの前に追加された抽象キーワードを持つクラスを指します。直接インスタンス化することはできません。静的メソッドは、静的キーワードによって変更されたメソッドを指します。静的メソッドは次のとおりです。静的プロパティを操作するために使用されます。

PHPの抽象クラスと静的メソッドとは何ですか

#抽象クラス

抽象クラスとは、クラスの前に抽象キーワードを追加することを意味し、抽象メソッドが存在します(クラスメソッド関数キーワードの前に抽象キーワードを追加)クラス。

(推奨チュートリアル:

php ビデオ チュートリアル)

抽象クラスは直接インスタンス化できません。抽象クラスは、サブクラスに必要なメソッドのみを定義 (または部分的に実装) します。サブクラスは、抽象クラスを継承し、抽象クラス内のすべての抽象メソッドを実装することによって、抽象クラスを具体化できます。

サブクラスをインスタンス化する必要がある場合は、抽象クラス内のすべての抽象メソッドを実装する必要があります。サブクラスが抽象クラス内のすべての抽象メソッドを実装していない場合、そのサブクラスも抽象クラスであり、クラス内でその前に abstract キーワードを付ける必要があり、インスタンス化できません。

例:

abstract Class AbstractClass
{
    abstract public function A();//这里不要携带body
    abstract protected function B();//这里不要携带body
    public function C(){}//这里要携带body
}

class ClassA extends AbstractClass
{
    public function A(){
        echo "Hello,I&#39;m A <br/>";
    }
    protected function B(){
        echo "Hello,I&#39;m B <br/>";
    }
    public function E()
    {
        echo "Hello,I&#39;m E <br/>";
    }
}

静的メソッド:


静的メソッドは、static キーワードによって変更されます。

静的メソッドは、静的プロパティを操作するために使用されます。したがって、非静的プロパティを静的メソッドで操作することはできません。

静的メソッドはオブジェクトを通じて呼び出す必要がないため、静的メソッドでは疑似変数 $this を使用できません。

静的メソッドにアクセスするにはどうすればよいですか?

クラス内: クラス名::静的メソッドまたは self::静的メソッド

クラス外: クラス名::静的メソッドまたはオブジェクト インスタンス->静的メソッド

例:


class Person{
    public static $nums = 0;    // 静态属性的申明
    public $age = 0;
    public function addNum(){
        self::$nums++;
        echo self::$nums;   // 在类里面,可用self关键词访问静态属性
        echo Person::$nums;     // 类可直接访问静态属性
        // echo $this->nums;  // 报错,静态属性不可以由对象通过 -> 操作符来访问
        self::getNum();     // 在类里面,可用self关键词访问静态方法
        Person::getNum();   // 类可直接访问静态方法
    }
    public static function getNum(){
        // 静态方法
        // echo $this->age;  // 报错,静态方法里面不能操作非静态属性
        echo &#39;真的吗?&#39;.self::$nums;    //静态方法中只能操作静态属性 
    }
}
$p1 = new Person();
$p1->addNum();
echo $p1::$nums;    // 对象实例可以这样访问静态属性
Person::getNum();   // 类可直接访问静态方法
$p1->getNum();  // 对象实例可以这样访问静态方法

関連する推奨事項:

php トレーニング

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

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