Изменить содержимое родительского класса, не меняя структуру методов дочернего класса, связанно с родительским. php oop
Я начинающий php-разработчик. У меня задание сделать ферму на ооп. Есть код, в котором дочерний класс изменяет свойства родительского. НО в методах дочернего класса явно указываются свойства родительского, что делает код не гибким. Я хочу сделать так, чтоб при добавлении новых свойств(животных) в родительский класс "Animals", мне не приходилось менять содержимое методов дочернего класса, ведь я обращаюсь через него к этим свойствам.
Например, в методе setCountAnimal(), я не ищу название животного в родительском классе, а через строку провожу проверку, зная, что такое животное есть...
class Animals {
public $cow='cow';
public $chiсken = 'chiсken';
public $count_cow = 0;
public $milk = 0;
public $eggs = 0;
public $count_chicken = 0;
}
class Farm extends Animals {
public function setCountAnimal($count, $animal_name) {
if($animal_name == 'cow'){
$this->count_cow += $count;
echo 'Добавлено '. $count.' ' .'коров.';
}
elseif($animal_name == 'chicken'){
$this->count_chicken += $count;
echo 'Добавлено '. $count.' ' . 'куриц';
} else {
echo 'Такого животного нет на ферме';
exit;
}
}
public function setProduct($count, $animal_name, $day_of_week) {
if($animal_name == 'cow') {
$this->milk += $count;
echo 'В '.$day_of_week.' собрано '. $count. ' литров молока.';
}
elseif($animal_name == 'chicken') {
$this->eggs += $count;
echo 'В '.$day_of_week.' собрано '. $count. ' яиц.';
} else {
echo 'Такого животного нет на ферме';
exit;
}
}
public function getCountAnimals(){
return "На ферме: ".$this->count_cow.' коров '. $this->count_chicken.' куриц ';
}
public function getCountProduct() {
return "На ферме: ".$this->eggs. ' яиц '. $this->milk. ' литров молока ';
}
}