Есть знатоки?
Не понимаю почему такой вариант не работает в этой задаче:
public A(int f1) {
this.f1 = f1;
this.initialize(); // заместо замены метода на приват, поставить здесь this.
}
Используя this. я явно обращаюсь к методу родителя, почему и в этом случае вызывается метод потомка ?
Evgeny Rakovsky
24 уровень
Помощь по решению
Решен
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Evgeny RakovskyJava Developer в Paysend
21 мая 2020, 22:21
Код задачи
0
vinslerExpert
21 мая 2020, 22:06
This vs Super
0
vinslerExpert
21 мая 2020, 22:04
А точно что this это родитель? Может родитель это super?
0
Evgeny RakovskyJava Developer в Paysend
21 мая 2020, 22:08
класс А это родитель
Там из конструктора В вызывается конструктор А
И в конструкторе А каким-то образом вызывается метод из В
+1
Evgeny RakovskyJava Developer в Paysend
21 мая 2020, 22:09
Без каких либо явных указателей
0
vinslerExpert
21 мая 2020, 22:16
нужно весь код смотреть, так не понятно.
0
Evgeny RakovskyJava Developer в Paysend
21 мая 2020, 22:20
public class Solution {
public static void main(String[] args) {
new B(6);
}
public static class A {
private int f1 = 7;
public A(int f1) {
this.f1 = f1;
initialize(); // тут вызывается метод потомка, если указать this. то всё равно потомка
}
protected void initialize() {
System.out.println(f1);
}
}
public static class B extends A {
protected int f1 = 3;
public B(int f1) {
super(f1);
this.f1 += f1;
initialize();
}
protected void initialize() {
System.out.println(f1);
}
}
}
0
vinslerExpert
22 мая 2020, 17:54решение
+6
Evgeny RakovskyJava Developer в Paysend
22 мая 2020, 18:15
Cпасибо, надо аккуратнее быть с вызовом методом в конструкторе родителя
0
vinslerExpert
28 июня 2020, 20:04
0
Jo Wigi
28 июня 2020, 22:14
Спасибо
0