Konstruktoren sind nicht vererbbar, da dies zu einem seltsamen und unbeabsichtigten Verhalten führen könnte. Genauer gesagt, wenn Sie einen neuen Konstruktor zu einer Basisklasse hinzufügen, erhalten alle abgeleiteten Klassen eine Instanz dieses Konstruktors. Das ist in manchen Fällen schlecht, weil Ihre Basisklasse vielleicht Parameter angibt, die für Ihre abgeleiteten Klassen nicht sinnvoll sind.
Ein häufig genanntes Beispiel dafür ist, dass in vielen Sprachen die Basisklasse für alle Objekte (allgemein als "Objekt" bezeichnet) einen Konstruktor ohne Parameter hat. Wenn Konstruktoren vererbt würden, würde das bedeuten, dass alle Objekte einen parameterlosen Konstruktor haben, und es gibt keine Möglichkeit zu sagen: "Ich möchte, dass Leute, die eine Instanz dieser Klasse erstellen, die Parameter X, Y und Z angeben, sonst sollte ihr Code nicht kompiliert werden." Für viele Klassen ist es wichtig, dass bestimmte Parameter für ihre korrekte Funktion definiert sind, und Konstruktoren nicht vererbbar zu machen ist ein Teil der Art und Weise, wie Klassenautoren garantieren können, dass einige Parameter immer definiert sind.
Bearbeiten, um auf Kommentare zu reagieren: Ramesh weist darauf hin, dass, wenn Konstruktoren vererbt würden, wie er es gerne hätte, er die Konstruktoren der Basisklasse immer durch privat deklarierte Konstruktoren in jeder abgeleiteten Klasse überschreiben könnte. Das ist sicherlich richtig, aber es gibt ein logistisches Problem mit dieser Strategie. Sie erfordert, dass die Verfasser abgeleiteter Klassen die Basisklassen genau beobachten und einen privaten Konstruktor hinzufügen müssen, wenn sie die Vererbung des Konstruktors der Basisklasse blockieren wollen. Dies bedeutet nicht nur eine Menge Arbeit für die Verfasser abgeleiteter Klassen, sondern diese Art der impliziten Abhängigkeit zwischen den Klassen ist genau die Art von Dingen, die zu seltsamem Verhalten führen kann.
Ramesh - es ist nicht so, dass es unmöglich wäre, das, was Sie beschreiben, zu einer Sprache hinzuzufügen. Im Allgemeinen wird es nicht gemacht, weil diese Art von Verhalten die Leute verwirren und zu einer Menge zusätzlicher Fehlersuche und Code-Schreiben führen könnte.
Quintin Robinson gibt in den Kommentaren einige sehr interessante Antworten auf diese Frage, die es auf jeden Fall zu lesen lohnt.