演習課題「メソッドをオーバーライドしよう」
右のコードには、Greetingクラスに、sayHelloメソッドが定義されており、
Greetingクラスを継承したHelloクラスが定義されています。
このHelloクラスで、sayHelloメソッドをオーバーライドして、下記の期待する出力値のように出力してください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello paiza
#03:メソッドのオーバーライド
ここでは、クラスを継承したときに利用できるメソッドのオーバーライドについて学習します。
オーバーライドを使うと、親クラスが持つメソッドを子クラスで再定義できます。
オーバーライドを利用すると、親クラスが持つメソッドを子クラスで書き換えて再定義することができます。<?php
// メソッドのオーバーライド
class Box {
public $myItem;
public function __construct($item) {
$this->myItem = $item;
}
public function open() {
echo "宝箱を開いた。".$this->myItem."を手に入れた。\n";
}
}
class MagicBox extends Box {
public function look() {
echo "宝箱は妖しく輝いている。\n";
}
public function open() {
echo "宝箱を開いた。".$this->myItem."が襲ってきた!\n";
}
}
$box = new Box("鋼鉄の剣");
$box->open();
$magicBox = new MagicBox("モノマネモンスター");
$magicBox->look();
$magicBox->open();
?>
- PHP: コンストラクタとデストラクタ - Manual
http://php.net/manual/ja/language.oop5.decon.php
- yan note: PHP 継承とオーバーライド
http://yan-note.blogspot.jp/2013/03/php_25.html