Конструктор выглядит как метод, но имя должно быть как имя класса, а не возвращаемое значение.
Переопределение означает то, что мы объявили в суперклассе, что именно мы должны объявить в подклассе, это называется переопределением. Имя суперкласса и имя подкласса различны.
Если вы пытаетесь написать конструктор суперкласса в подклассе, то подкласс будет рассматривать его как метод, а не конструктор, поскольку имя не должно совпадать с именем подкласса. И это даст ошибку компиляции, что методы не имеют возвращаемого значения. Поэтому мы должны объявить void, тогда только он скомпилируется.