Не использовать аннотацию @Override при реализации абстрактного метода

Почему в первом блоке кода эта работающая реализация нет аннотации @Override к run()? - run() — абстрактный метод:

handler = new Handler();

final Runnable r = new Runnable() {
    public void run() {
        tv.append("Hello World");
        handler.postDelayed(this, 1000);
    }
};

handler.postDelayed(r, 1000);

Сравните это с моей функцией Android onCheckedChanged, которая также является абстрактным методом:

currentlocation.setOnCheckedChangeListener(object: RadioGroup.OnCheckedChangeListener{
    override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {

    }

})

который должен иметь модификатор override (примечание: это код kotlin, но применяются те же принципы).

Почему 2-й блок кода должен иметь ключевое слово переопределения, а первый - нет?

«это код kotlin, но применяются те же принципы» false

Michael 02.04.2019 12:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
207
1

Ответы 1

Это потому, что разработчики языка так решили. Kotlin требует явных модификаторов переопределения, а Java — нет.

См. Переопределение методов в Kotlin

Другие вопросы по теме