クラスの応用 / 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();