1
respuesta

Diferencia entre Clase abstracta e Interfaz

La diferencia entre una clase abstracta y una interfaz, es el nivel de restricción.

Una clase abstracta puede tener atributos y métodos abstractos, como también atributos y métodos normales. Además, una clase abstracta puede heredar sus atributos y clases a través de la Herencia.

En cambio, una interfaz no puede tener atributos y métodos normales, solo abstractos. Y una interfaz no puede heredar sus atributos y métodos a través de la Herencia, porque una interfaz se "implementa". Al implementarse, obliga a la clase que la implementa a hacer uso completo de sus métodos y atributos. Esto quiere decir que si la interfaz tiene 3 métodos, la clase que la implementa debe implementar esos 3 métodos, ni más, ni menos.

Por ejemplo, en el siguiente ejemplo la clase perro es hija de la clase Animal:

public class Perro extends Animal

La palabra reservada extends indica que hay Herencia entre ambas clases.

public class Perro extends Animal implements Accesorio

Ahora la clase Perro que hereda de Animal, además implementa la interfaz Accesorio.

Y accesorio tenía los métodos "tieneCollar", "tieneChaleco" y "tienePantuflas". Y ahora el perro debe implementarlos.

1 respuesta

Hola Jorge, espero que estés bien.

Gracias por tu contribución y felicidades por los avances en los estudios.

Si tienes dudas, aquí estaremos para apoyarte. Te aconsejo a interactuar con tus compañeros, profes y scubas en Discord.

¡Saludos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios