¿Por qué AtomicInteger es abstracto en Kotlin? (funciona bien en Java)

Intentaba hacer algo similar a esto (en realidad, no es necesario que lea el enlace para comprender esta pregunta, solo como reference), y escribo esto:

class CallArbiter: AtomicInteger { // error constructor(initialValue: Int) : super(initialValue) constructor() : super() } 

El comstackdor dice:

Error: (8, 1) Kotlin: La class 'CallArbiter' debe declararse abstracta o implementar abstracta abstracta de la class base pública abstracta divertida toByte (): Byte definido en java.util.concurrent.atomic.AtomicInteger

No puedo entender por qué me exige implementar esos methods. No los vi en la class AtomicInteger . Todo está bien en Java.

AtomicInteger amplía java.lang.Number , pero en Kotlin este tipo se asigna a kotlin.Number .

En kotlin.Number se definen estos methods abstractos (que se pueden ver en su API ):

toByte , toInt , toChar etc.

Si depura esta línea de código: AtomicInteger(2).toByte() puede ver que se usa el método java.lang.Number::byteValue , esto se hace usando ciertas técnicas de compilation.