Da quello che posso dire da Scala e Hack -
mixin:
- Può avere lo stato (cioè proprietà dell'istanza)
- Può fornire solo metodi concreti
- Può avere costruttori, chiamati nello stesso ordine in cui le loro classi sono state mescolate in
- Se
A
si mescola inB
eC
,A instanceof B == false
eA instanceof C == false
Tratti:
- Può fornire solo metodi, non lo stato
- Può dichiarare metodi astratti, che un consumatore deve implementare
- Non può avere costruttori
- Se
A
implementa i trattiB
eC
,A instanceof B == false
eA instanceof C == false
È corretto o mi sto perdendo qualcosa? Queste definizioni sono accurate per qualsiasi lingua OO o solo per quelle sopra menzionate?