Теоретически я знаю, что частные члены не наследуются. Но то, что дает мне мой код, действительно запутывает. Это выглядит следующим образом:приватные атрибуты получения унаследованных
class A{
private $ name;
private $age;
private $weight;
private $height;
function __construct ($Name, $Age, $Weight, $Height)
{
$this->name = $Name;
$this->age = $Age;
$this->weight = $Weight;
$this->height = $Height;
}
}
// another class that extends A
class B extends A {
private $gender;
private $profession;
function __construct ($Gender, $Profession)
{
$this->gender = $Gender;
$this->profession = $Profession;
}
}
$aB = new B ("Male", "Teacher");
var_dump ($aB);
кодовых значения выходов для атрибутов B, которые, как ожидается, но он также пытается получить значение атрибутов A и выводит значение NULL для всех атрибутов A. Короче говоря , он выводит имя и значение из 6 переменных (атрибутов). Почему он включает атрибуты и значения класса A, если частные свойства не наследуются.
Спасибо! Вот почему в B не работает следующая строка кода: echo «$ this-> name»; – user5648637
да. если вы хотите наследовать свойство, просто измените 'private' на 'protected' – Andrey