Traits e interfaces

Forja soporta traits (interfaces) y su implementación para clases. Permiten definir comportamientos compartidos y polimorfismo paramétrico con genéricos.

Definir un trait

📐 Sintaxis
trait NombreTrait {
    funcion metodo1(param1: Tipo) → Retorno
    funcion metodo2() // opcional: cuerpo por defecto
}

Implementar un trait

🧬 Implementación
implementa NombreTrait para MiClase {
    funcion metodo1(param1: Tipo) → Retorno {
        retornar ...
    }
}

Ejemplo completo

🎓 Traits + Clases
trait Volador {
    funcion volar() → Texto
    funcion aterrizar() // default vacío
}

clase Pajaro {
    nombre
    constructor(n) { este.nombre = n }
}

implementa Volador para Pajaro {
    funcion volar() → Texto {
        retornar "este.nombre  está volando..."
    }
}

variable p = nuevo Pajaro("Tweety")
escribir(p.volar())

Genéricos con traits

🔄 Genéricos boundeados
funcion imprimir<T: Volador>(valor: T) {
    escribir(valor.volar())
}

Keywords relacionadas

KeywordDescripción
traitDefine una interfaz
implementaImplementa un trait para una clase
dondeCláusula where para bounds complejos