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
| Keyword | Descripción |
|---|---|
trait | Define una interfaz |
implementa | Implementa un trait para una clase |
donde | Cláusula where para bounds complejos |