Bene, sto imparando Scala, quindi questa domanda potrebbe essere troppo semplice per la maggior parte delle persone.Scala: come ereditare uno "slot statico"?
In Java che può avere una scanalatura statica (funzione o variabile) in una classe, e poi avrò quello slot in classi ereditate troppo.
In Scala non ho slot statici, ma ho oggetti companion. Ma sto scoprendo che quegli oggetti non fanno parte della classe ereditata, quindi se ho due classi Person
e Student
, e Persona ha un oggetto compagno con una variabile all:List
che restituisce un elenco di tutte le persone così posso fare Person.all
, Mi aspettavo di poter fare anche Student.all
, ma non è questo il caso.
C'è un modo per ottenere lo stesso comportamento che otterrei in Java?
Grazie!
L'errore è che ci sono due copie separate della lista. Il fatto è che non tutto è una lista, ma un riferimento. Prego. –
Ero abbastanza nuovo a Scala quando ho scritto questo commento. Mi rendo conto ora che il tratto di Walter Chang dichiara un riferimento non inizializzato, quindi il suo codice non contiene 2 copie della lista. Nel mio codice, ho dimenticato di inizializzare la lista val [Person] = List(). Con quel cambiamento, il mio codice sarebbe corretto? –