Мне нужна помощь.Этот код не означает ничего делать, я просто пытался узнать, как работают эти наследуемые функции.
Таким образом, у обоих родителей и дочернего класса есть переменная $ wheel и установлено значение private (это не имеет смысла, но я просто играл с кодом).
Метод используется для печатиколичество колес экземпляра.Этот метод не переопределяется в дочернем классе.Родительские и дочерние объекты были созданы, и wheel_details () были вызваны с использованием каждого объекта.
Однако при вызове с использованием дочернего объекта метод не использует приватную переменную дочернего объекта.Вместо этого он печатает переменную родительского объекта.
Как и почему вы думаете, что он обращается к закрытой переменной родительского класса, а не к собственной закрытой переменной.
Оцените понимание этого.TIA
class Bicycle {
private $wheels = 2;
public function wheel_details(){
return " It has {$this->wheels} wheels. Invoked by ". get_class($this) ;
}
}
class Unicycle extends Bicycle {
private $wheels = 1;
}
$b1 = new Bicycle;
$b2 = new Unicycle;
echo "Bicycle1 wheels ". $b1->wheel_details(). " <br />";
echo "Bicycle2 wheels ". $b2->wheel_details(). " <br />";
/*Output
=======
Bicycle1 wheels It has 2 wheels. Invoked by Bicycle
Bicycle2 wheels It has 2 wheels. Invoked by Unicycle
*/