En cualquier problema en el que tienes que hacer la operacion contraria a la herencia son utiles.
¿cuando heredar de Thread o cuando implementar Runnable?
si tuviera por ejemplo 10 clases con que heredan de musica pero que necesitan 5 métodos que no están en la clase padre pero que los tienen en común ¿es recomendable crear una interfaz? Creo la interfaz para implementarlos a las 10 clases que heredan de musica pero que necesitan estos métodos ¿es correcto?