クラスの応用 / ch01 — 継承 (extends) / 演習 01

📝 ドリル 01 — Animal を継承した Dog

問題

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

  • プロパティ name (string)
  • メソッド eat()"{name} は食べた" を 1 行出力する

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

  • メソッド bark()"{name} はワンと吠えた" を 1 行出力する

最後に Dog のインスタンスを作って name"ポチ" を入れ、 eat()bark() を順に呼んでください。

期待される出力:

ポチ は食べた
ポチ はワンと吠えた

採点

php scripts/grade.php v2/topics/09-class-advanced/ch01-inheritance/drill/01-extend/

ヒント

  • class Dog extends Animal { ... }
  • $d = new Dog();
  • $d->name = "ポチ";
  • 親の eat()Dog に書かなくても呼べる

テストケース

期待される出力

ポチ は食べた
ポチ はワンと吠えた

📄 starter.php(雛形)

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

<?php

// TODO: Animal クラスを定義する
//   - public string $name;
//   - public function eat() { echo "{$this->name} は食べた\n"; }

// TODO: Animal を継承した Dog クラスを定義する
//   - public function bark() { echo "{$this->name} はワンと吠えた\n"; }

// TODO: Dog のインスタンスを作って name = "ポチ" にし、eat() と bark() を呼ぶ
✅ 解答例を見る(自分で解いてから)
<?php

class Animal {
    public string $name;

    public function eat() {
        echo "{$this->name} は食べた\n";
    }
}

class Dog extends Animal {
    public function bark() {
        echo "{$this->name} はワンと吠えた\n";
    }
}

$d = new Dog();
$d->name = "ポチ";
$d->eat();
$d->bark();