Cargando

Ir a contenido


 


Interfaces y clases abstractas en Java

En este tutorial veremos cómo podemos diferenciar las interfaces de las clases abstractas y algunas cosas que se relacionan con este tema.


Escrito por el sep 26 2014 02:32 interfaces clases java


A pesar que ambas estructuras pueden parecer similares ya que obligan a las clases que las utilizan a crear los métodos que estas poseen y utilizarlos para que puedan ser válidas, entre sí tienen diferencias clave, que pueden darnos una mayor luz de cómo podemos utilizarlas.

Las diferencias aunque son sutiles, nos permiten utilizar ambas estructuras inclusive combinadas, de esta forma podemos lograr darle un mayor orden a nuestro proyecto y crear aplicaciones que nos permitan reproducir de mejor manera los objetos del mundo real en un formato digital.

Restricciones
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.
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
-
VOTA
5
0%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado sep 26 2014 02:32
  •   Actualizado sep 28 2014 17:11
  •   Visitas 558
  •   Nivel
    Intermedio



Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
Demuestra que eres experto!
  ESCRIBIR TUTORIAL
Suscribirse