sto iniziando con Scala e l'ho trovato un po 'strano. In java avrei potuto fare qualcosa di simile:Perché le classi che non estendono altre classi devono estendersi dai tratti? (con non funziona)
interface Foo{}
public class Bar implements Foo{}
che sto cercando di fare qualcosa di simile con la Scala, ma non funziona:
trait Foo;
class Bar with Foo; // This doesn't work!
devo usare il "estende" parola chiave :
Ora, va bene, ma non è quello che volevo.
Un'altra cosa strana ho notato è che, data ogni classe a Scala si estende da AnyRef (vedi questa immagine da scala-lang.org: http://www.scala-lang.org/sites/default/files/images/classhierarchy.png) posso fare questo:
class Bar extends AnyRef with Foo; // This works too!
Allora, che cosa mi manca ? Non ha senso usare un tratto senza estenderlo?
Grazie!
Buona spiegazione, grazie! – santiagobasulto