estoy empezando con Scala y esto me pareció un poco raro. En java que podría hacer algo como esto:¿Por qué las clases que no se extienden a otras clases deben extenderse desde rasgos? (with does not work)
interface Foo{}
public class Bar implements Foo{}
que estoy tratando de hacer algo similar con Scala, pero no funciona:
trait Foo;
class Bar with Foo; // This doesn't work!
Tengo que usar el "extiende" palabra clave :
class Bar extends Foo; // This works OK!
Ahora, está bien, pero no es lo que quería.
Otra cosa extraña he observado es que dado toda clase de Scala se extiende desde AnyRef (ver esta imagen de scala-lang.org: http://www.scala-lang.org/sites/default/files/images/classhierarchy.png) i puede hacer esto:
class Bar extends AnyRef with Foo; // This works too!
Por lo tanto, lo que me estoy perdiendo ? ¿No tiene sentido usar un rasgo sin extenderlo?
¡Gracias!
¡Buena explicación, gracias! – santiagobasulto