Не выводит переменную (PHP ООП)

Алексей Е
<?php

abstract class Human {
public $name;
public $rost;
public $ves;
public $nation;
public $color;
abstract function say();
} class RussianHuman extends Human {
public $nation = 'Русский';
public $color = 'Белый';
public function say(){
echo "Я {$this->nation} и мой язык Русский<br>";
}

}
class UniqueRussianHuman extends RussianHuman {
function __construct($name,$rost,$ves) {
$this->$name = $name;
$this->$rost = $rost;
$this->$ves = $ves;
parent::say();
$this->say();

}
function say(){
echo "Я уникальный человек, меня зовут {$this->name} , рост {$this->rost} см. , а мой вес {$this->ves} кг.<hr>";
}
}
$vasya = new UniqueRussianHuman('Вася','60','3.5');
$masha = new UniqueRussianHuman('Маша','55','2.5');
?>

Возвращает:
Я Русский и мой язык Русский

Я уникальный человек, меня зовут , рост см. , а мой вес кг.

 Когда создаем уникального человека, нужно что бы он назвал свою нацию, после этого свои характеристики. С первым все хорошо, parent::say отрабатывает, но метод  $this->say почему не видит свойств уникального человека, подскажите плиз почему так?  если в наглую использовать echo без всяких перегрузок и методов , то все работает, но хотелось бы сделать  именно с использованием перегрузки say
Или так не делается и нужно обязательно два разных метода? например say_nation и say_information , просто хотелось бы понять что именно в моем примере не как и почему свойства пустые((
Алексей Е около 2 лет назадСпасибо 0
0 чел.