🤯 Java-хардкор: найди неочевидную ошибку!
Сегодня задачка со звездочкой. На первый взгляд, код абсолютно рабочий и логичный. Мы создаем класс-наследник, переопределяем метод и вызываем его.
Что выведет этот код при запуске?
public class Main {
static class Parent {
public Parent() {
init();
}
void init() {
System.out.println("Инициализация родителя");
}
}
static class Child extends Parent {
private String name = "Java";
@Override
void init() {
System.out.println("Длина имени: " + name.length());
}
}
public static void main(String[] args) {
new Child();
}
}Варианты ответа:
1. Длина имени: 4
2. Инициализация родителя
3. Ошибка компиляции
4. NullPointerException во время выполнения
👇 Пишите, как думаете, и почему! Чур не запускать в IDE!
А правильный ответ и объяснение я спрятал в первом комменте:
👉 @BookJava