Вы не можете наследовать private свойства, только protected или public! Если вы хотите обратиться к ним из наследованного класса, то измените на protected, так что они станут доступны.
Запустить
<?php
interface Say {
public function say();
}
abstract class Animal implements Say {
protected $name;
protected $nickname;
protected $coloring;
protected $breed;
protected $age;
public function __construct($name, $nickname, $coloring, $breed, $age) {
$this->name = $name;
$this->nickname = $nickname;
$this->coloring = $coloring;
$this->breed = $breed;
$this->age = $age;
}
}
class Dog extends Animal {
public function say() {
return "Я - {$this->name} {$this->coloring} окраса, породы - {$this->breed}, зовут меня - {$this->nickname}, мне сейчас {$this->age}";
}
}
class Cat extends Animal {
public function say() {
return "Я - {$this->name} {$this->coloring} окраса, породы - {$this->breed}, зовут меня - {$this->nickname}, мне сейчас {$this->age}";
}
}
$dog = new Dog('собака', 'Рекс', 'белого', 'Немец', '5 лет');
echo $dog->say();
echo "<br><br>";
$cat = new Cat('кошка', 'Маркиза', 'пятнистого', 'Сфинкс', '2 года');
echo $cat->say();
?>