Что случилось с следующим кодом и как его исправить? Моя цель - работать с суперклассом в моем методе main
. Этот объект суперкласса должен сам создать (в своем внутреннем состоянии) экземпляры своего подкласса. Цель этого заключается в том, что для подкласса требуется только состояние суперкласса, и поскольку все операции, которые должен выполнять подкласс, важны только для суперкласса.Как создать подкласс из суперкласса
public class Test {
public static void main(String[] args) {
Test2 testSuperclass = new Test2("success #1");
}
}
class Test2 {
public Test2(String printComment) {
System.out.println(printComment);
Test3 testSubclass = new Test3("success #2");
}
}
class Test3 extends Test2 {
public Test3(String printComment2) {
System.out.println(printComment2);
}
}
Test3
Конструктор генерирует ошибку Implicit super constructor Test2() is undefined. Must explicitly invoke another constructor
.
Так что, если бы я должен был вставить соответствующий конструктор, чтобы вызов 'super()' мог быть вызван, этот вызов 'super()' в принципе ничего не даст и позволит мне получить функциональность, указанную в моем сообщении? – user2763361
Если вы добавите конструктор no-arg в Test2, он будет автоматически вызван компилятором. Будь то что-то или нет, зависит от вас. – Thilo