Los constructores no son heredables porque pueden causar un comportamiento extraño y no deseado. Más específicamente, si agregó un nuevo constructor a una clase base, todas las clases derivadas obtienen una instancia de ese constructor. Eso es algo malo en algunos casos, porque tal vez su clase base especifique parámetros que no tienen sentido para sus clases derivadas.
Un ejemplo común para esto es que en muchos idiomas, la clase base para todos los objetos (comúnmente llamada "Objeto") tiene un constructor sin parámetros. Si los constructores se heredaran, esto significaría que todos los objetos tienen un constructor sin parámetros, y no hay forma de decir "Quiero que las personas que hacen una instancia de esta clase proporcionen los parámetros X, Y y Z; de lo contrario, su código no debería compilarse". " Para muchas clases, es importante definir ciertos parámetros para su función adecuada, y hacer que los constructores no sean heredables es parte de la forma en que los autores de la clase pueden garantizar que siempre se definan algunos parámetros.
Editar para responder a los comentarios: Ramesh señala que si los constructores se heredaran como él quisiera, siempre podría anular los constructores de la clase base utilizando constructores declarados de forma privada en cada clase derivada. Eso es cierto, pero hay un problema logístico con esta estrategia. Requiere que los escritores de las clases derivadas tengan que mirar de cerca las clases base y agregar un constructor privado si desean la herencia de bloques del constructor de la clase base. No solo es mucho trabajo para las personas que escriben clases derivadas, este tipo de dependencia implícita en todas las clases es exactamente el tipo de cosa que puede causar un comportamiento extraño.
Ramesh - no es que lo que describes sea imposible de agregar a un idioma. En general, no se hace porque ese tipo de comportamiento podría confundir a las personas y llevar a una gran cantidad de depuración y escritura de código.
Quintin Robinson brinda algunas respuestas muy útiles a esta pregunta en los comentarios que definitivamente vale la pena leer.
duplicado de http://stackoverflow.com/questions/426484/why-are-constructors-not-inherited –