Почему дочерний класс не вызывает конструктор родительского класса?

С php.net

Если дочерний элемент не определяет конструктор, он может быть унаследован от родительского класса, как обычный метод класса (если он не был объявлен как закрытый).

Из того, что я понимаю, если я не определяю конструктор в child, будет вызван конструктор parent.

Итак, вот мой пример, я сделал родительский класс с конструктором. Создан как дочерний, так и родительский класс, однако выдает следующее предупреждение:
Предупреждение: отсутствует аргумент 1 для транспортного средства :: __ construct ()

Вот пример кода.

class vehicle{
protected $type;
function __construct($type){
$this->type = $type;
echo "Type chosen: $this->type";
}
}

class car extends vehicle{

}

$vehicle = new vehicle("sport");
$car = new car;

0

Решение

Ну, это вызывает конструктор родительского класса. И так как вы не предоставляете никаких аргументов для конструктора, когда вы объявляете $car объект, он дает вам предупреждение о пропущенном параметре.

Вы должны инициализировать дочерний объект класса, предоставив аргумент «type», как показано ниже:

$car = new car("family");
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector