Duda java

Alguien puede explicarme la diferencia entre una clase abstracta y un interfaz? por lo que entiendo la clase abstracta sirve para definir una estructura (métodos y atributos) sin implementar, que luego se implementan en las clases hijas en que sea necesario. Sobre la interfaz, entiendo que es básicamente lo mismo, pero que ademas un objeto puede tener varias interfaces, cosa que solo puede tener un método abstracto.

Alguien puede confirmarme si es correcto lo que he comentado y orientarme un poco mas en este tema?.
Hay un hilo oficial de Java, las dudas mejor ahí :)

De todas maneras, una diferencia clara es que una clase abstracta puede implementar uno o más métodos, basta que uno de ellos sea abstracto para que la clase lo sea. Una interface no puede implementar nada, ya que se usan para definir un determinado comportamiento.
2 respuestas