interface MetodoPago {
// Propiedad sin implementación
val nombreMetodo: String
// Función sin implementación
fun procesarPago(monto: Double): Boolean
// Función con implementación por defecto
fun obtenerDetalles() {
println("Método: $nombreMetodo")
}
// Otra función sin implementación
fun validarDatos(): Boolean
}
lightbulb interface define el contrato que las clases deben cumplir
Usar palabra clave interface
Pueden ser abstractas o con implementación
Sin cuerpo: obligatorias. Con cuerpo: opcionales
Sin abstract, open es implícito