David Roald, lo primero es que las interfaces no son para evitar la herencia multiple, son precisamente para poder hacer uso de ella. Las interfaces, en mi opinion, son para poder redefinir comportamientos de los objetos. En java hay muchas interfaces que usamos y tal vez no lo sabemos, la más común es List, la cual tiene muchos métodos pero sus implementaciones redefinen cada uno como lo deseen.
Por que no usar solo clases? para esta cuestión e insisto que es en mi opinión, las clases son representaciones de objetos que tienen sus atributos y sus comportamientos propios, dare un ejemplo donde voy a incluir algunas analogías con la aritmética: Imaginemos que tenemos dos clases diferentes pero que tienen algún comportamientos homólogos, lo podemos hacer es una "factorización de métodos" y con lo métodos "se llamen igual" pero que hagan cosas diferentes creamos una interface, cuando la clase implementa una interface, reescribe sus métodos. Ahora bien si quisiéramos tener una lista de objetos que contenga los dos tipos de clases no podriamos hacerlo si tenemos solo objetos concretos, sin embargo si las dos clases implementan la misma interface se puede crear una lista que almacene tipos de objetos de la interface, de esa forma podemos tener una sola lista con los dos tipos de calses.