オーバーライド
- 2013 8/9
- カテゴリー : クラス
スーパークラスで定義したメソッドをサブクラスで上書きすることをオーバーライドと言います。
実際に行ってみましょう。
下記のようにBusinessPersonクラスを継承したEliteBusinessPersonクラスを作成してください。
1 2 3 4 5 6 7 8 |
require_once dirname(__FILE__)."/BusinessPerson.php"; class EliteBusinessPerson extends BusinessPerson{ public function work(){ echo "<p>{$this -> lastName}{$this -> firstName} はバリバリ働いています。</p>"; } } |
実行コードは下記のようにしてみましょう。
1 2 3 4 5 |
require_once "./classes/EliteBusinessPerson.php"; $bp = new EliteBusinessPerson('時','任三郎'); $bp -> work(); $bp -> show(); |
継承元のBusinessPersonクラスのwork()メソッドはEliteBusinessPersonクラスによって上書きされました。 しかしshow()メソッドは多段階さかのぼり大元のPerosnクラスの者を参照していることが確認できますね。