Estou aprendendo coisas legais e acabei de aprender sobre o novo recurso adicionado no 2.3, que é a adição de Traits . Agora, para mim, parece que os Traits permitem que você faça basicamente tudo o que uma superclasse e uma Interface podem fazer.
A adição de Traits ao Groovy torna a herança e as interfaces obsoletas?
E se não, qual é o melhor momento para usar cada um desses mecanismos?
interfaces
inheritance
groovy
Ryan Stull
fonte
fonte
Respostas:
Os traços combinam o melhor dos dois mundos - a herança de classes (abstratas) e a implementação de interfaces. Uma característica pode conter implementações padrão de métodos e, no entanto, um tipo pode implementar várias características ao mesmo tempo. Isso permite algum tipo de herança múltipla, mas de uma maneira boa, evitando o diamante mortal da morte .
Se você não sabe como começar, use traços. Você ganha flexibilidade e pode mudar para interfaces ou herança de classe posteriormente, se necessário.
fonte