Lección 13 / 20

Herencia y traits

En esta lección definirás un comportamiento común y harás que una clase lo implemente.

Un trait declara qué métodos debe tener quien lo implemente, parecido a una interfaz de Java. Una clase lo adopta con extends, y a partir del segundo se encadenan con with.

El código de ejemplo declara que algo «sabe hablar» y hace que un perro cumpla ese contrato con su propio ladrido.

Lo que distingue a un trait de una interfaz clásica es que puede incluir implementaciones, no solo firmas. Eso permite compartir código entre clases que no están emparentadas, algo que en Java tradicional obligaba a inventar clases abstractas intermedias. Una clase solo puede heredar de una clase, pero puede mezclar todos los traits que necesite.

Esa combinación es la base de un estilo muy usado en Scala: en vez de construir un árbol de herencia profundo, se van apilando capacidades pequeñas e independientes. El resultado es más fácil de cambiar, porque cada trait se entiende por separado.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Scala directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)