この例では、MyObject クラスを使用して 2 つのサブクラス: Book と Elec を生成します。2 つのサブクラスは、異なる 構築メソッド を使用して 2 つのオブジェクト c_book と h_elec をインスタンス化し、情報を出力します
<?php /*父类*/ class MyObject{ public $object_name; //名称 public $object_price; //价格 public $object_num; //数量 public $object_agio; //折扣 function construct($name,$price,$num,$agio){ $this -> object_name = $name; $this -> object_price = $price; $this -> object_num = $num; $this -> object_agio = $agio; } function showMe(){ echo '这句话不会显示。'; } } /* 子类Book */ class Book extends MyObject{ public $book_type; //类别 function construct($type,$num){ $this -> book_type = $type; $this -> object_num = $num; } function showMe(){ return '本次新进'.$this -> book_type.'图书'.$this -> object_num.'<br>'; } } /* 子类Elec */ class Elec extends MyObject{ function showMe(){ return '热卖商品'.$this -> object_name.'<br>原价:'.$this -> object_price.'<br>特价:'.$this -> object_agio * $this -> object_price; } } /* 实例化对象 */ $c_book = new Book('计算机类',1000); $h_elec = new Elec('待机王XX手机',1200,3,0.8); echo $c_book->showMe()."<br>"; echo $h_elec->showMe(); ?>
(1) サブクラスはすべてのメンバー変数を継承します。 コンストラクターを含む親クラスのメソッド。これが継承の実装です
(2) サブクラスが作成されると、PHPはまずサブクラス内のコンストラクターメソッドを検索します。サブクラスに独自のコンストラクターがある場合、PHP はサブクラスのコンストラクターの呼び出しを優先します。サブクラスにコンストラクターがない場合、PHP は親クラスのコンストラクターを呼び出します
(3) サブクラスは親クラスのメソッド showMe( ) をオーバーライドします。どちらのオブジェクトも showMe() メソッドを呼び出しますが、返される結果は 2 つの異なる情報です。これはポリモーフィズムの具現化です
以上がphp: オブジェクトの継承とポリモーフィズムの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。