Я все еще начинающий, когда дело доходит до полиморфизма, поэтому я надеюсь, что смогу правильно сформулировать свой вопрос.
Допустим, у меня есть таблицы в моей базе данных - собака, кошка и мышь. Я хочу быть в состоянии назвать что-то вроде:
$animal = new Animal("dog", 12);
с классом животных, похожим на:
class Animal {
protected $id;
protected $legs;
protected $height;
function __construct($type, $id) {
if ($type == "dog") {
return new Dog($id);
}
}
}
class Dog extends Animal {
function __construct($id) {
$this->id = $id;
$this->legs = 4;
$this->height = 1;
}
}
Это не работает, но я хочу иметь возможность вызвать новое животное и передать определенное животное и вернуть его. Как я могу создать это? (Я использую PHP).