0

Interfaces y clases abstractas en Java



Interfaces y clases abstractas en Java

Interfaces y clases abstractas en Java La principal diferencia que vemos entre clases abstractas e interfaces es que la primera es una clase y la segunda no, a pesar que la interface tiene una estructura similar enfrenta unas restricciones que no se dan en una clase abstracta.
Variables
La clase abstracta no tiene restricción en cuanto al uso de variables, sin embargo la interface si tiene, de hecho todas las variables que vayamos a utilizar deben ser public, static o final.

Constructores

En este caso el constructor de la clase abstracta debe invocarse a través de subclases, lo que deja fuera la posibilidad de instanciar a la misma a través del operador new.

En el caso de la interface, esta no puede tener constructores ya que no es una clase, lo que hace que también descartemos la creación de instancias con el operador new.

Métodos
En una interface los métodos deben ser public abstract de forma obligatoria, en cambio en la clase abstracta podemos colocar cualquier tipo de método sin problemas, lo que nos marca una diferencia más.

Herencia e implementación

Otro punto que debemos tener en cuenta es la forma de hacer herencia y de implementación que podemos lograr con estas dos estructuras en Java, sabemos que cuando hacemos herencia en una clase, solo podemos heredar directamente de una clase superior, es decir, que si queremos heredar de dos clases diferentes, debemos crear como un efecto cascada, donde una primera clase hereda de la clase superior y luego otra clase hereda de esta para obtener su funcionalidad y la de su clase padre.

En las interfaces no ocurre este problema, de hecho podemos heredar directamente de varias interfaces, por lo que si queremos obtener sus métodos podemos hacerlo sin problema.

En el caso de la implementación de una interface en una clase abstracta si tenemos más libertad, en este caso podemos implementar múltiples Interfaces sin ningún tipo de restricción en este caso, lo que nos da la posibilidad de hacer una interface padre más compleja por decirlo de algún modo. Lo importante acá es saber y tener en cuenta que una interface no es una clase y por lo tanto no puede heredar de una, solo puede hacer herencia de otras interfaces.

Con esto finalizamos este tutorial, hemos visto las diferencias en restricciones e implementación en nuestros programas de estas dos estructuras en Java, a pesar que ambas sirven para modelar y definir comportamientos cada una tiene su espacio, por lo que al conocerlas mejor ya podremos decidir cuál usar en nuestros programas hechos con este lenguaje.







comparte con tus amigos

codigo fuente

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *