Показать сообщение отдельно
  #2 (permalink)  
Старый 22.01.2019, 01:13
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Вы не можете наследовать 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();

?>

Последний раз редактировалось Malleys, 22.01.2019 в 01:18.
Ответить с цитированием