Oi.
Cara, primeiramente, um cachorro é um Som? Um gato também? Você precisa rever seus conceitos de orientação a objetos.
Essa interface que você tá tentando entender é a interface do Java né? Porque existem mais 2 tipos de interface: um contrato e a GUI.
A interface serve, principalmente, quando você tem um objeto que tanto é uma coisa quanto outra. Como o Java não quer que você caia em coisas casca grossa como o losango mortal (óóó!, http://www.gotw.ca/gotw/037.htm), eles colocaram a interface.
Se uma classe “implements” uma interface, você vai ser obrigado a implementar nessa classe que “implements” todos os método que temos na interface. Ou seja, se um cachorro é um som, ele vai ter que implementar tanto latir() quanto miar() e generico(). Isso é errado, certo? É nesse ponto que você chega e deve se perguntar se o seu design está correto ou não. Você pode ver que ele está errado, porque um cachorro nunca vai poder miar nem um genérico da vida, né?
Além disso, miar(), generico() e latir() não deveriam estar na classe Mamifero. Nessa classe, deveriam estar somente os atributos e métodos que interessam ao mamífero, que não precisa necessariamente ser um gato ou um cachorro. Se você fosse fazer isso pra um zoológico inteiro, você teria sérios problemas, porque cada vez que um animal fosse adicionado, você teria que mexer no código da classe Mamífero (o que nós não queremos, porque a OO prega que um código, depois de pronto, deve ser pouco modificado. E ainda, quando for, não acarretar muitas outras modificações. Se isso ocorre, reveja o projeto).
Veja conceitos sobre Composição também. E estude mais a orientação a objetos.