Эй, ребята, у меня чертовски много времени с проблемой "расширений" с проблемой в наборе задач, над которым я работаю - я думаю, что у меня просто есть блок, потому что он написан, чтобы целенаправленно сбивать с толку , Вот проблема, как мне было сказано:
class A {
int x;
A(int a) {System.out.println(" class A");}
}
class B extends A {
int x;
B() {System.out.println(" class B");}
public static void main (String [] args) {
A a = new B();
}
}
Когда я компилирую, я получаю следующую ошибку из консоли:
cannot find symbol
symbol : constructor A()
location: class A
B() {System.out.println(" class B");}
^
и я должен быть в состоянии исправить эту ошибку в классе B, не касаясь класса A. Я явно упускаю что-то глупо очевидное, но я пробовал перестановки всего, о чем я могу думать, в течение часа, и ничего не работает ,
Пока что я пробовал:
- выброс пустоты перед B () - та же ошибка.
- превращение B () в A (int a) - последний возвращается с ошибкой объявления недопустимого метода (добавление пустоты перед ним возвращает меня к исходной ошибке «not find symbol»)
- выполнение B () B (int a) - та же ошибка, плюс добавляется дополнительная ошибка «не удается найти символ», поскольку я теперь уничтожил объявление B ().
- создание класса B расширяет A до класса B, расширяет A (int A) - выбрасывает девять ошибок. Явно не ответ.
- Изменение имени класса A на Apple, просто чтобы посмотреть, даст ли это мне ответ - нужно, чтобы я добавил пустоту перед A (int a) в классе Apple, что я не могу сделать.
Какого черта я здесь скучаю? Это не совсем продвинутый класс, так что ничего страшного не может быть, но это сводит меня с ума. Любая помощь будет принята с благодарностью.