Конструкторы вызываются для создания объектов из плана класса, то есть для инициализации элементов данных класса. Если подкласс должен был наследовать конструктор, то при вызове подкласса вам также понадобятся знания о членах родительского класса. Это не то, что можно увидеть в сценарии реальной жизни. Например, если вы создадите объект типа Ferrari, вам определенно будет интересно инициализировать параметры, такие как скорость, ускорение, и вы не будете беспокоиться об инициализации параметров объекта Car, хотя Ferrari наследуется от Car. Поэтому, вызывая конструктор Ferrari, вы только и будете беспокоиться только о членах Ferrari, а не о членах его родительского класса. Надеюсь, я четко сформулировал свою точку зрения.
возможно уже ответил: http://stackoverflow.com/questions/1644317/java-constructor-inheritance – Eugene
Вам не нужно писать в 'super' в каждом конструкторе, обязательно. Предположим, что суперкласс имеет конструктор по умолчанию (public no-argument). Подкласс будет, если вы укажете в нем никаких конструкторов, неявно получить конструктор по умолчанию, который просто вызывает 'super();' во время компиляции. Любой конструктор, который вы явно создаете, будет иметь неявный вызов 'super();' в качестве его первой строки, если только в первой строке конструктора явным образом не вызову одного из перегруженных конструкторов в суперклассе (например, 'super (myParameter); '). – hotshot309