ホームページ  >  記事  >  バックエンド開発  >  PHP での抽象クラスと抽象インターフェイスの使用法

PHP での抽象クラスと抽象インターフェイスの使用法

小云云
小云云オリジナル
2018-03-27 15:36:591735ブラウズ

この記事では主に PHP の抽象クラスとインターフェイスの使用法について説明します。最初に抽象メソッドの概念を説明します。

1. 抽象メソッド

クラスにおいて、メソッド本体のないメソッドは抽象メソッドです。

abstract 可視性関数メソッド名 (パラメータ 1,...); // 可視性が明示的に指定されていない場合は、デフォルトで public

になります:

public function hello($args);
abstract function work();            // 修饰符abstract,也可以省略

2。クラス名:抽象クラス抽象クラスはインスタンス化できず、継承のみが可能です。

抽象クラスは、必ずしも抽象メソッドを持つ必要はありません。

抽象メソッドの可視性をプライベートにすることはできません

抽象メソッドはサブクラスにあるため、書き直す必要があります。

  • 抽象クラスを使用する必要があるのはどのような場合ですか?

  • メソッドはあるのですが、このメソッドをサブクラスに含める必要がある場合は、抽象メソッドにカプセル化し、クラスを抽象クラスにする必要があります。

  • 特定のメソッドをコントロールのサブクラスにカプセル化する必要がある場合、抽象メソッドを使用できます。

  • 継承のみが可能でインスタンス化できないクラスを制御する必要がある場合。

例:

機能する抽象メソッドを持つ人間を宣言します。
  • PHP 講師クラスを宣言し、メソッドが機能するようにオーバーライドします。

      abstract class People{
            protected $age=22;
            public $height=1.70;
            abstract function work();
        }
        class PhpTeacher extends People{
            function work(){
                echo "真不是php";
            }
        }

    3. インターフェース
  • クラス内のすべてのメソッドが抽象メソッドであり、メンバー属性を持たない場合、このクラスはインターフェースと呼ばれます。

    interface Common{
        abstract function work();
        abstract function test($args);
    }

    インターフェイスの役割: PHP クラスは単一継承を持ちますが、インターフェイスを通じて多重継承を実現できます。
  • インターフェースの継承(拡張):

    • インターフェースの継承インターフェースインターフェースのインターフェース名は親インターフェース名を拡張します

    注: クラスの継承は単一継承 (親クラスは 1 つだけです) ですが、インターフェースの継承はクラスからインターフェースへの多重継承です。も多重実装されています。

    インターフェイスの実装:

    • クラスはインターフェイス クラスを実装します クラス名はインターフェイス名 1、インターフェイス名 2、...を実装します。

    継承されたクラスは同時にインターフェイスを実装します:

    • クラスは親クラスを継承します同時に実装インターフェースクラス クラス名は拡張します 親クラス名はインターフェース名を実装します

    4. 抽象クラスとインターフェースの違い

    • インターフェースは特別な抽象メソッドのみを含みます。 、メンバープロパティはありません。

    • クラスがインターフェースを実装するとき (implements)、インターフェース内のすべてのメソッドを完全に実装する必要があります。クラスが抽象クラスを継承 (拡張) するときは、必要な抽象メソッドを書き換えるだけで済みます。利用される。

    • 抽象クラスは単一の継承のみを持つことができますが、インターフェースには複数の継承があり、インターフェースのクラスの実装にも複数の実装があります。

    関連推奨事項:

    PHP の抽象クラスの詳細な説明

    PHP インターフェイスの抽象クラスとインターフェイスの詳細な説明

以上がPHP での抽象クラスと抽象インターフェイスの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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