ホームページ  >  記事  >  バックエンド開発  >  PHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)

PHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)

WBOY
WBOYオリジナル
2021-10-25 11:43:143337ブラウズ

前回の記事では、PHPクラスでのコンストラクタとデストラクタの使い方を詳しく解説した「クラス内のコンストラクタとデストラクタを区別する」をご紹介しました。この記事では、引き続き PHP クラスの継承関連の知識を見ていきます。

PHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)

PHP のオブジェクト指向の世界では、クラスを介して既存のクラスを継承できます。継承されたクラスは、親クラスまたは基本クラスと呼ばれます。親クラスのこのクラスをサブクラスといいます。実際、サブクラスは親クラスの拡張として理解でき、サブクラスは親クラスの機能を超えた新しい機能を追加できます。サブクラスは親クラスのコンストラクターを継承することもできます。サブクラスがインスタンス化されると、PHP は最初にサブクラス内のコンストラクターを呼び出します。サブクラスが存在しない場合は、親クラスのコンストラクターを呼び出します。

<strong><span style="font-size: 20px;">extends</span></strong>キーワードの継承

PHP では、次のように実装します。 extends キーワードによるクラスの継承。その構文形式は次のとおりです。

class 子类名 extends 父类名{
    ... ...
}

注意する必要があるのは、クラスは別のクラスからのみ継承できるが、クラスは複数のクラスを継承できるということです。つまり、サブクラスは親クラスを 1 つだけ持つことができますが、親クラスは複数のサブクラスを持つことができます。

#継承public メンバー

PHP では、すべての親クラスは

public変更されたメンバーはサブクラスに継承できます。

次に例を見てみましょう。例は次のとおりです:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        public function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
    }
    $object = new son1();
    $object -> demo();
    $object2 = new son2();
    $object2 -> demo();
?>

出力結果:


PHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)

In上記の例では、基本クラスを定義し、別のクラスを使用してこの基本クラスを継承し、同時にサブクラスを使用して基本クラスのメンバー メソッドを呼び出そうとしています。その結果、親クラスのパブリックに変更されたすべてのメンバーをサブクラスが継承できるようになります。

protected メンバーの継承

上記では、

public によって変更されたメンバーの継承について説明しました。 , 全てサブクラスに継承可能です protectedというメンバもあります それによって変更されるメンバはクラス外からアクセスされたくないメンバです このメンバを変更することで分かる、保護されたメンバーであり、クラスによってのみアクセスできます。内部的にアクセスされ、サブクラス内でも内部的にアクセスできます。このメンバーにアクセスするためにサブクラスにメンバー関数を設定できます。

例は次のとおりです:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        protected function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
        public function test(){
            $this -> demo();
        }
    }
    $object = new son1();
    // $object -> demo();      // 在子类中调用父类使用 protected 修饰的成员方法会报错
    $object2 = new son2();
    $object2 -> test();
?>

出力結果:


PHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)

上記の例からわかるように、保護された Modified 変数を介して、継承されたサブクラス内でもアクセスできること。


#継承プライベート<strong><span style="font-size: 20px;"></span></strong>メンバーPHP クラスでは、

private

で変更されたメンバーはクラス外からアクセスできず、サブクラスからもアクセスできませんが、これがプライベート変更であることがわかります。クラスプライベートメンバー。正確に言うと、private によって変更されたメンバーはサブクラスに継承されず、サブクラスからアクセスすることはできません。
例は次のとおりです:

<?php
    class father{
        private function demo(){
            echo &#39;基类中private的成员方法<br>&#39;;
        }
    }
    class son  extends father{
        public function test(){
            $this -> demo();
        }
    }
    $object = new son();
    $object -> test();
?>

出力結果が間違っています 親クラスの private キーワードで変更されたメンバがサブクラスで呼び出された場合、プログラムは報告しますエラーが発生し、操作が終了します。

ご興味がございましたら、「

PHP ビデオ チュートリアル

」をクリックして、PHP の知識をさらにご覧ください。

以上がPHPクラスの継承を取得するにはどうすればよいですか? (概要の共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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