code

Sintaxis de Clases Abstractas

Clase Abstracta Padre

abstract class Empleado(
    val nombre: String,
    val salario: Double
) {
    // Propiedad abstracta
    abstract val departamento: String
    // Función con implementación
    fun mostrarDatos() {
        println("Nombre: $nombre")
        println("Salario: €$salario")
    }
    // Función abstracta sin implementación
    abstract fun calcularBonus(): Double
}

Clase Hija

class Desarrollador(
    nombre: String,
    salario: Double,
    val lenguaje: String
) : Empleado(nombre, salario) {
    // Sobrescribir propiedad abstracta
    override val departamento = "Tecnología"
    // Sobrescribir función abstracta
    override fun calcularBonus(): Double {
        return salario * 0.15
    }
}

lightbulb override es obligatorio para miembros abstractos