Tach!
Definiere "(nicht) initialisiert"! Der Konstruktor ist lediglich eine Funktion, die nach der Erzeugung des Objekts aufgerufen wird.
Ist das in PHP so? In Java ist der Konstruktor eine Funktion, die das Objekt erzeugt (und ggf. noch mehr tut).
Das ist ein Henne-und-Ei-Problem. Wenn der Konstruktor Teil des Objekts ist, wie kann er dann aufgerufen werden, um das Objekt zu erzeugen, wenn das Objekt noch gar nicht da ist? Das grundlegende Erzeugen eines Objektes (Reservieren von Speicher und so weiter) muss vorher passieren - das kann der new-Operator erledigen. Der Konstruktor ist dann eine spezielle Funktion, die beim Initialisierungsprozess aufgrufen wird, die zum Initialisieren der Werte in den Eigenschaften dient - so man das möchte.
Bei der PHP-Variante muß dann wohl die ableitende Klasse Implementierungsdetails der Super-Klasse kennen (z.B. ob es nötig ist, eine bestimmte Konstruktor-Methode aufzurufen).
Es gibt keine Methodenüberlagerung in PHP. Es gibt genau einen Konstruktor oder keinen. (Allerdings kommt hier eine historisch bedingte Besonderheit ins Spiel, als die Konstruktor-Funktion noch nicht __construct hieß sondern wie der Namen der Klasse. Das will ich aber nicht näher ausführen und tut auch nichts grundlegendes zur Sache.) In einer abgeleiteten Klasse jedenfalls ruft man den Elternkonstruktor auf, oder lässt es bleiben.
dedlfix.