🤯 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
Просмотры: 424
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти