У нас есть код. Но всё в нем не так… Нам нужно кое-что поменять. А именно — расставить обращения к методам суперкласса и модификаторы доступа так, чтобы получить вывод на экран определённого характера. Какого именно? Узнаете из задачи.
Делаем правильный вывод
- 12
Недоступна
Комментарии (148)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
PavelFatBoy
30 июля, 09:13
мда, ну и задачка, сделал, с помощью идеи, прописываешь super.method1() скобочки подчеркивает, прописываешь в них new B() и alt+Enter исправляет вот так и вывод верный, а валидатор не принимает, зато не компилируемый код принимает)))))))
0
Тимур Гордеев
9 июня, 13:12
Бесполезная задача
0
comrade_b
8 июня, 08:28
Ну что за шляпа? Ну как может принматься некомпилируемый код валидатором? Даже если заменить private на public в Классе А, вывод на экран неверный.
Этот КОР просто беда!

+1
Oulina Full Stack Developer в Фриланс
19 апреля, 08:34
public void method2() {
System.out.println("C class, method2");
super.method1();
}
IntelliJ подчеркивает method1 с уведомлением "Ambiguous method call. Both". На ошибку не нужно обращать внимания, так как по условию один из методов должен быть приватным.
+2
Andrey Sanin
17 апреля, 19:54
В методах: последовательность вызова метода и вывода в консоль текста
играет большое значение
+1
CyberBoar
15 апреля, 07:16
Ничего не понял. Часа два думал, как бы так расставить вызовы и модификаторы доступа, чтобы вывод соответствовал условию (подсказки старался игнорировать).
Когда вроде бы, по логике вещей, сделал верно - компилятор подсвечивал красным вызов метода super.method1 в классе С, в методе method2.
Компилятор утверждал, что так не пойдет - неоднозначный вызов, методы в классе А и классе B идентичны (хотя на самом деле нет, у них разные модификаторы доступа).
Долго не мог понять, в чем проблема, и как это исправить.
В итоге глянул правильное решение - а оно было идентичным.
Попробовал запустить этот, по сообщению компилятора, нерабочий код.. и он запустился и вывод соответствовал заданию.
Что это было, как это понимать, нихрена не понял.
+6
VladimirPic Работает в Gazprom
12 апреля, 15:13
Объясните, пожалуйста, такой момент. В этой задаче я точно помнил, что super должен вызываться в первой строке, но удивился, когда увидел, что его можно гибко использовать и после sout. Can anyone explain this?
0
Andrey
7 мая, 20:29
Это требование к конструкторам класса относится. В конструкторе дочернего всегда неявно вызывается конструктор родителя, а если мы хотим его явно вызвать, то нигде, кроме как на первой позиции мы его не можем расположить
+2
VladimirPic Работает в Gazprom
8 мая, 13:12
Благодарю
0
Тимофей Филиппов
8 апреля, 21:00
посмотрел на требования. Сделал все как написано. Посмотрел на порядок вывода, поправил вызовы в методах. Все прошло с первой попытки.
Ничего не понял - что это было, что я должен был узнать? Подскажите пожалуйста.
0
zxc-17
23 февраля, 06:10
Идея эту шнягу даже компилировать отказывается, тонкий намек, что не надо так делать...
+1
Yuri_S Инженер-конструктор 2к.
17 февраля, 09:58
Как вызвать приватный метод класса-предка из класса-потомка?
Просто сделайте в классе-предке публичный метод, который вызывает приватный метод.
Да кто вообще эта ваша инкапсуляция
+3