Este tipo de clase define métodos o propiedades sin implementación. Sin embargo, requiere de subclases.

abstract class Vehiculo {
    abstract fun drive() // Método sin implementación
    fun stop() {
        println("El vehículo se ha detenido")
    }
}

class Coche : Vehiculo() {
    override fun drive() {
        println("El coche está en marcha")
    }
}

val miCoche = Coche()
miCoche.drive() // El coche está en marcha
miCoche.stop() // El vehículo se ha detenido