Чтобы избежать ошибок при переопределении методов в Kotlin, необходимо явно указывать модификаторы: kotlinlang.ru
- Для членов, которые могут быть переопределены. kotlinlang.ru Для этого используется ключевое слово open. kotlinlang.ru metanit.com Если у функции нет этого модификатора, объявление метода с такой же сигнатурой в производном классе невозможно. kotlinlang.ru
- Для самого переопределения. kotlinlang.ru В производном классе перед переопределяемым методом указывается ключевое слово override. metanit.com Если требуется исключить возможность дальнейшего переопределения, то перед override пишут final. younglinux.info
Также для решения проблемы с ошибкой «Accidental override: The following declarations have the same JVM signature» можно использовать аннотацию @JvmName. www.baeldung.com Она сообщает компилятору Kotlin, какое имя использовать в байт-коде, чтобы избежать конфликтов имён. www.baeldung.com