PHP オブジェクト指向継承メカニズムを理解する
継承はオブジェクト指向プログラミングにおける重要な概念であり、古いクラスの特性を含む新しいクラスを作成できるようになります。そして機能。
PHP では、キーワード extends
を使用して継承を実現できます。継承を通じて、サブクラスは親クラスのプロパティとメソッドを継承し、新しいプロパティとメソッドを追加したり、継承されたメソッドをオーバーライドしたりできます。
例を通して、PHP のオブジェクト指向継承メカニズムを理解しましょう。
class Animal { public $name; public function eat() { echo "正在吃..."; } } class Dog extends Animal { public function bark() { echo "正在汪汪叫..."; } } $dog = new Dog(); $dog->name = "小黄"; $dog->eat(); $dog->bark();
上の例では、最初に Animal
クラスを定義します。このクラスには name
属性と eat()
メソッドがあります。次に、Dog
クラスを作成し、extends
キーワードを使用して Animal
クラスを継承しました。 Dog
クラスは bark()
メソッドを追加します。
Dog
クラス $dog
のインスタンスを作成し、$dog の
name 属性に値を割り当てることができます。
。 Dog
クラスは Animal
クラスを継承しているため、$dog
オブジェクトは eat()
メソッドと bark( )# ##方法。
class Animal { public function makeSound() { echo "动物发出声音..."; } } class Dog extends Animal { public function makeSound() { echo "狗发出声音:汪汪汪..."; } } class Cat extends Animal { public function makeSound() { echo "猫发出声音:喵喵喵..."; } } $animal = new Animal(); $dog = new Dog(); $cat = new Cat(); $animal->makeSound(); // 输出:动物发出声音... $dog->makeSound(); // 输出:狗发出声音:汪汪汪... $cat->makeSound(); // 输出:猫发出声音:喵喵喵...
Animal クラスと 2 つのサブクラス
Dog および
Cat を定義しました。これらはそれぞれ
makeSound() メソッドをオーバーライドします。
makeSound() メソッドを呼び出すとき、どのクラス メソッドが呼び出されるかは、オブジェクトのタイプによって異なります。
class Animal { public function __construct() { echo "Animal类的构造函数被调用..."; } public function __destruct() { echo "Animal类的析构函数被调用..."; } } class Dog extends Animal { public function __construct() { parent::__construct(); echo "Dog类的构造函数被调用..."; } public function __destruct() { echo "Dog类的析构函数被调用..."; parent::__destruct(); } } $dog = new Dog();
Animal クラスと
Dog クラスを定義しました。
Animal クラスには独自のコンストラクターとデストラクターがありますが、
Dog クラスは、親クラスのコンストラクターを呼び出し、親クラスのデストラクターを呼び出した後に追加のロジックを追加します。以前にいくつかの処理が追加されました。
Dog クラスのインスタンスを作成するときは、まず
Animal クラスのコンストラクターを呼び出し、次に
Dog を呼び出します。クラス独自のコンストラクター。オブジェクトが破棄されると、デストラクターは逆の順序で呼び出されます。
以上がPHP のオブジェクト指向継承メカニズムを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。