Ho letto il section di Programmazione in Scala in cui è stato introdotto abstract override
, ma sono ancora confuso da cosa si intenda esattamente con l'unione di questi modificatori. Il frammento di codice in cui questi modificatori viene utilizzato è incollato sotto:Perché è necessario "override astratto" non "override" da solo in subtrait?
trait Doubling extends IntQueue {
abstract override def put(x: Int) { super.put(2 * x) }
}
In particolare, mi sono confuso dalla finalità di abstract
in questo caso, e perché non siamo in grado di raggiungere i risultati attesi in modo semplice con la parola chiave override
. Se non includessimo una chiamata allo super
, avremmo bisogno della parola chiave abstract
? Perché o perché no? Sto cercando una spiegazione dettagliata di questa parola chiave combo per quanto riguarda i tratti impilabili.
_Thank you_. Per qualche ragione continuo a vedere esempi di tratti impilabili con 'override astratto ', ma mi sembra che i due concetti siano in realtà separati (anche se entrambi si basano su' super'). – Max