Pelo que posso dizer de Scala e Hack-
Mixins:
- Pode ter estado (por exemplo, propriedades da instância)
- Só pode fornecer métodos concretos
- Pode ter construtores, chamados na mesma ordem em que suas classes foram misturadas
- Se
A
misturarB
eC
,A instanceof B == false
eA instanceof C == false
Traços:
- Só pode fornecer métodos, não declarar
- Pode declarar métodos abstratos, que um consumidor deve implementar
- Não pode ter construtores
- Se
A
implementa característicasB
eC
,A instanceof B == false
eA instanceof C == false
Isso está correto ou estou faltando alguma coisa? Essas definições são precisas para qualquer idioma OO ou apenas para os mencionados acima?