クラスの応用 / メソッドのオーバーライド / 演習 01

📝 ドリル 01 — Cat で speak() をオーバーライド

問題

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

  • メソッド speak()"何かの声" を 1 行出力する

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

  • speak() をオーバーライドして "ニャー" を 1 行出力する

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

期待される出力:

ニャー

採点

php scripts/grade.php v2/topics/09-class-advanced/ch02-override/drill/01-override-method/

ヒント

  • 親と 同じ名前のメソッド を子に書けばオーバーライド
  • 子のインスタンスでは、自動的に子のメソッドが呼ばれる

テストケース

期待される出力

ニャー

📄 starter.php(雛形)

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

<?php

// TODO: Animal クラスを定義し、speak() で「何かの声」を出力する
// TODO: Animal を継承した Cat クラスを定義し、speak() をオーバーライドして「ニャー」を出力する
// TODO: Cat のインスタンスを作って speak() を呼ぶ
✅ 解答例を見る(自分で解いてから)
<?php

class Animal {
    public function speak() {
        echo "何かの声\n";
    }
}

class Cat extends Animal {
    public function speak() {
        echo "ニャー\n";
    }
}

$c = new Cat();
$c->speak();