クラスの応用 / ch03 — 親メソッドを呼ぶ (parent::) / 演習 01

📝 ドリル 01 — parent::greet() を呼ぶ

問題

Greeter クラスを定義してください。

  • メソッド greet()"こんにちは" を 1 行出力する

Greeter を継承した FormalGreeter クラスを定義してください。

  • greet() をオーバーライドし、まず parent::greet() を呼んでから "本日はお世話になります" を 1 行出力する

FormalGreeter のインスタンスを作って greet() を呼んでください。

期待される出力:

こんにちは
本日はお世話になります

採点

php scripts/grade.php v2/topics/09-class-advanced/ch03-parent-call/drill/01-call-parent/

ヒント

  • parent::greet(); で親の処理を呼べる
  • その後に追加の echo を書く

テストケース

期待される出力

こんにちは
本日はお世話になります

📄 starter.php(雛形)

このコードから書き始めてください。

<?php

// TODO: Greeter クラスを定義し、greet() で「こんにちは」を出力する
// TODO: Greeter を継承した FormalGreeter を作り、
//       greet() をオーバーライドして
//       parent::greet() を呼んだ後に「本日はお世話になります」を出力する
// TODO: FormalGreeter のインスタンスを作って greet() を呼ぶ
✅ 解答例を見る(自分で解いてから)
<?php

class Greeter {
    public function greet() {
        echo "こんにちは\n";
    }
}

class FormalGreeter extends Greeter {
    public function greet() {
        parent::greet();
        echo "本日はお世話になります\n";
    }
}

$g = new FormalGreeter();
$g->greet();