Конструктор вашего класса Main
неявно вызывает super()
. Но поскольку ваш класс Foo2
имеет конструктор с параметрами, компилятор не создает для него конструктор без параметров, поэтому неявный вызов super()
недопустим.
Это можно исправить, удалив существующий конструктор Foo2
(как вы сделали) или добавление второго (без параметров) конструктора к Foo2
или добавление вызова super(someIntValue);
в качестве первого оператора конструктора Main
.
Вот 3-й вариант:
private Main(int initialVal) {
super(initialVal);
this.st = initialVal;
}
Конечно, не имеет смысла иметь переменную экземпляра st
как в суперклассе Foo2
, так и в подклассе Main
.
private Main(int initialVal) {
super(initialVal);
}
будет иметь больше смысла.