2017-05-11 2 views
-2

Warum wird das Konstrukt der Klasse Autos aufgerufen, wie ich kein Objekt für die Klasse Autos erstellt habe?Konstrukt-Konzept in Php unklar

<?php 


class Cars{ 

function __construct(){ 

echo "i am cars"; 

} 

} 


class SmallCars extends Cars{ 


} 

$car = new SmallCars(); 

?> 
+3

sein, weil der Vererbung in der Objektprogrammierung, Ihr SmallCars alle Autos funktioniert – HReynaud

+0

bekommen abgedeckt wurde, dass die Definition von OO ist. Wenn Sie nicht überschreiben, wird Super-Klasse Ihnen helfen. – anwerj

Antwort

3

Wenn Sie eine Klasse erweitern, wird das Kind den Konstruktor der Eltern erben, wenn Sie es ausdrücklich nicht zu

Aus der Dokumentation sagt: heißen Mutter Konstrukteuren nicht implizit, wenn:

Hinweis Die Kindklasse definiert einen Konstruktor. Um einen übergeordneten Konstruktor auszuführen, ist ein Aufruf von parent :: __ construct() innerhalb des Kindkonstruktors erforderlich. Wenn das Kind keinen Konstruktor definiert, kann es wie eine normale Klassenmethode von der Elternklasse geerbt werden (wenn es nicht als privat deklariert wurde).

Auch HReynaud hat dies im Kommentarbereich darauf hingewiesen.

Diese Frage vor in here

PHP __construct() Dokumentation here