Java - Dudas con Interfaces

   
Vista:

Dudas con Interfaces

Publicado por Juan (27 intervenciones) el 25/01/2016 21:01:33
Buenas tardes.

A ver si alguien me explica mejor para que sirven las interfaces, ya que por mas que leo sobre ello, para mi no tienen mucho sentido.

Sé que sirven para crear una regla y para obligar a las clases que las implementen crear sus métodos, pero que más me da a mi obligar mediante una interfaz a crear un método obligatoriamente o crearlo igual sin tener que implementar nada. Me refiero a que si por ejemplo yo cuando cree una clase quiero crear un metodo lo creo y no tengo que obligarme a crearlo con una interfaz.

Yo veo las interfaces como simples recordatorios para "que no se te olvide tal método", no sé si alguien me puede explicar mejor este tema, si sirven para algo más que se me esté escapando a mí, si tiene una utilidad real y buena, o algún ejemplo real donde se vea el uso de las interfaces. No sé si me explico, pero el heredar de una clase lo veo lógico y de utilidad, ya que puedes utilizar todos sus métodos sin tener que volver a escribir nada de código, pero las interfaces que tienes que escribir todo de nuevo....

Espero vuestros comentarios o explicaciones.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Dudas con Interfaces

Publicado por Marcelo (47 intervenciones) el 26/01/2016 03:00:22
Si bien la herencia y la implementacion de interfaces tienen ciertos puntos en comun, tienen diferencias como el dia y la noche.

Una gran diferencia en java es que una clase puede implementar tantas interfaces como quiera, mientras que solo puede heredar de 1 clase.

Sin embargo la interfaz no solamente es utilizada como "recordatorio" sino como un "contrato" que exige a toda clase que la implementa a tener que completar sus metodos, esto es indescriptiblemente util cuando utilizas tecnicas como polimorfismo o reflection, donde tu, de antemano, ya sabes que al recibir un objeto del tipo de una interfaz ya va a tener los metodos de la misma sin importarte cual es el Tipo original de la clase que implementa la interfaz, por ende puedes utilizar clases indistintamente como si se trataran de una sola.

Por ejemplo, si tienes una Interfaz Imprimir con un metodo imprimir y 2 clases que la implementan como por ejemplo PlanillaConBorde y PlanillaSinBorde. Ademas contamos con un metodo
1
2
3
public void imprimirPlanilla(Imprimir planilla){
          planilla.imprimir();
}

Como ves, no te interesa de que tipo es el objeto planilla(si PlanillaConBorde o PlanillaSinBorde), tu sabes que al menos es del tipo Imprimir y que sabe que hacer cuando le invocas el método imprimir().

Espero haber dado un poco mas de luz al asunto y por cualquier otra duda quedo a las ordenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar