Ответ
Нет, lateinit поле нельзя переопределить в подклассе, так как оно не может быть open. lateinit требует явной инициализации перед использованием, а переопределение нарушило бы эту гарантию.
open class Parent {
lateinit var name: String // Нельзя сделать open!
}
class Child : Parent() {
// Ошибка: 'lateinit' modifier is not allowed on overridden properties
// override lateinit var name: String
}
Если нужно переопределить свойство, используйте обычное свойство с отложенной инициализацией через by lazy или nullable-тип.