¿Cuál es la diferencia entre una clase abstracta y una interface en Java?

Resultado de imagen para pregunta¿Cuál es la diferencia entre una clase abstracta y una interface en Java? .... esta es unas de las preguntas que nos hacemos los programadores orientados a objetos cuando comenzamos  aprender sobre este paradigma.

Una interfaz puede considerarse similar a una clase abstracta y en muchos casos es utilizada de la misma manera que una clase abstracta.

Entonces ¿Cual es la diferencia?

Como Java no permite implementar la herencia múltiple, esto hace que se dificulte la necesidad de aplicar la misma con este lenguaje, ya que una clase sólo puede extender una superclase. Mientras que una interfaz,   permite que una clase implemente una o más interfaces para resolver el problema de la herencia múltiple.

Una interfaz se diferencia de una clase abstracta porque esta sólo puede contener constantes (public final static) y métodos abstractos, mientras una clase abstracta puede contener constantes (atributos variables y public final static), métodos abstractos y métodos concretos.

Entonces basicamente debemos aplicar una clase abstracta o una interface según la necesidad de nuestro problema, siempre teniendo en cuenta que la idea de la programación orientada objetos es la reutilización de código, recuerda entre menos se reinvente la rueda mejor.
En resumen:



Esto fue todo por esta entrada, espero que le sirva de ayuda... 

System.out.println("Bye World");

Comentarios

Entradas populares