Делаем правильный вывод

  • 12
  • Недоступна
У нас есть код. Но всё в нем не так… Нам нужно кое-что поменять. А именно — расставить обращения к методам суперкласса и модификаторы доступа так, чтобы получить вывод на экран определённого характера. Какого именно? Узнаете из задачи.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (72)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Степан25 уровень, Казань
24 апреля, 23:43
Как по мне, то задача вообще непонятно для чего. Если не читать инструкций (которые по сути являются решением), то вообще неясно как ее решать - можно просто через sout все вывести и при этом соблюсти все условия. А вот зачем A.method1() должен быть private??? Он может быть и public без проблем, все работает, вывод в консоль такой какой нужно. Либо я не понял, либо задача из разряда "набираем код"...
Андрей25 уровень, Санкт-Петербург
13 мая, 12:54
A.method1() private, чтобы он вызвался именно у А. Смотри внимательнее, если оставить его public, то вызовется переопределенный method1() у C, и вывод не будет соответствовать заданию. А private не переопределяются.
Badadach22 уровень, Москва
9 марта, 18:48
дичь, сделал просто вызов метода класса B, а в нем перед принтлном вызвал методы класса Ф, все сработало, валик не принял, натыкал то что валидатор указал, с красным подчеркиванием валик принял туфту эту, моя нипанимать
Артём37 уровень, Санкт-Петербург
1 марта, 15:22
Я не понял. Почему при смене модификатора method1() на private, начинает вызываться method1() класса А вместо method1() класса С?
Артём37 уровень, Санкт-Петербург
1 марта, 15:35
Потому что в таком случае method1() класса С это не переопределение method1() класса А (private методы нельзя переопределить). А раз наследник (С) не переопределяет метод родителя (А), то вызывается родительский метод
Полина22 уровень
9 января, 11:36
Поначалу пыталась решить, не читая требования (которые по факту являются инструкцией). В лекции профессора про Externalizable была ссылка на статью про рефлексию Так вот с помощью рефлексии задача решается без красных подчеркиваний. Пропустит ли такое валидатор, проверять не стала )))
Валихан24 уровень, Санкт-Петербург
13 декабря 2019, 14:15
1-я задача, которая прошла с красным подсвечиванием (обращение к методу private за пределами его класса)! Делаем все по пунктикам и жмем на галочку!
fecaldestroyer25 уровень, Москва
12 декабря 2019, 12:29
http://pr0java.blogspot.com/2015/07/blog-post_66.html https://javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java
Islam Laipanov29 уровень, Москва
1 декабря 2019, 00:29
танцы с бубном
Dmitriy22 уровень
2 декабря 2019, 17:53
тот случай, когда методом тыка что-то натыкал
TSVlad37 уровень, Санкт-Петербург
20 ноября 2019, 17:15
Не читал требования, чтобы не спойлерить себе решение. Написал рабочий код, соответствующий условиям. Конечно же валидатор не принял...
alezalez35 уровень, Одесса
28 сентября 2019, 16:41
Народ, не совсем понял, поясните один момент: после успешного прохождения валидации убрал приват с method1 в классе A. Вывод: C class, method2 A class, method2 C class, method1 B class, method1 Так вот я не "догоняю", почему после обращения к method 2 класса А, после вывода "A class, method2" выполнение переходит на строку this.method1(); (т.е. полный текст: public void method2() { System.out.println("A class, method2"); this.method1(); } и вызывается не method1 класса А, а обращается к первому методу класса С. Поясните, пожалуйста, на пальцах :)
Виталий30 уровень, Санкт-Петербург
1 октября 2019, 14:39
У тебя переменная класса А ссылается на объект наследник класс С. Поэтому будут выполнятся методы класса С. Если б не было метода в С тогда из В. Если б не было в В,то уже тогда вызвался метод класса А
alezalez35 уровень, Одесса
2 октября 2019, 18:55
Спасибо, буду еще разбираться.
Владислав Пахомов33 уровень, Белгород
5 июля 2019, 10:31
Классная задачка, заодно с superами разобрался до конца))