Translate

martes, 23 de agosto de 2022

Modificadores en Kotlin


En Kotlin, como en Java, puede declarar una clase abstracta y no se pueden crear instancias de dichas clases. Una clase abstracta generalmente contiene miembros abstractos que no tienen implementaciones y deben anularse en las subclases. Los miembros abstractos siempre están abiertos, por lo que no necesita usar un modificador de apertura explícito:

abstract class Animated {

    abstract fun animate()

    open fun stopAnimating() { }

    fun animateTwice() { }

}

Veamos los diferentes tipos de modificadores: 

  • final: esta por defecto en las clases y no se puede sobreescribir el método
  • open: no esta por defecto las clases salvo que sea un método abstracto o interfaz y se puede sobreescribir
  • abstract: se debe sobreescribir y puede ser usado solo en clases abstractas
  • override: indica que estamos sobreescribiendo un método y es open por defecto salvo que le pongamos final. 

En las interfaces, no se usa final, open o abstract. Un miembro en una interfaz siempre está abierto; no puedes declararlo como definitivo o final. Es abstracto si no tiene cuerpo, pero no se requiere la palabra clave.