Foros del Web » Programación para mayores de 30 ;) » Java »

interfaces cuando usarlas, ventajas, etc.

Estas en el tema de interfaces cuando usarlas, ventajas, etc. en el foro de Java en Foros del Web. No entiendo la idea de tras de las interfaces, no se cuando debo implementarla o utilizarlas, no veo claro cuales son las ventajas Código: interface ...
  #1 (permalink)  
Antiguo 08/07/2007, 17:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 59
Antigüedad: 20 años, 5 meses
Puntos: 0
interfaces cuando usarlas, ventajas, etc.

No entiendo la idea de tras de las interfaces, no se cuando
debo implementarla o utilizarlas, no veo claro
cuales son las ventajas

Código:
interface InstrumentoMusical {
    void tocar();
    void afinar();
    String tipoInstrumento();
}

class InstrumentoViento  implements InstrumentoMusical {
    void tocar() { . . . };
    void afinar() { . . .};
    String tipoInstrumento() {}
}
no veo cual es la idea de fondo.. pues la clase InstrumentoViento
se puede hacer sin la necesidad de usar la interface.
saludos y espero que me ayuden a clarar mis dudas.

Última edición por picaporte; 08/07/2007 a las 17:50
  #2 (permalink)  
Antiguo 08/07/2007, 18:18
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: interfaces cuando usarlas, ventajas, etc.

Las interfaces sirven mas que nada cuando vas a desarrolllar un sistema grande, todo eso es para tener un buen diseño y cada clase tenga lo necesario para funcionar, por ejemplo, supon que tienes la interface Humano, y vas a crear varios tipos de "Personas":
Defines la interface con todas las funciones del Humano, ej:
Código HTML:
public interface Humano{
   public void respira();
   public void come();
   public void descansa();
    ...
}
Y ya las demas clases "Personas" obligatoriamente tienen que tener esos metodos.Con un ejemplo pequeño diras que no tiene sentido, pero si lo tiene cuando haces un diseño grande de alguna aplicacion.
Espero haberme explicado
$d$!
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #3 (permalink)  
Antiguo 08/07/2007, 18:23
 
Fecha de Ingreso: noviembre-2003
Mensajes: 59
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: interfaces cuando usarlas, ventajas, etc.

perfecto ya entendi, es para "obligar" a implementar los metodos.
gracias.
  #4 (permalink)  
Antiguo 08/07/2007, 19:19
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: interfaces cuando usarlas, ventajas, etc.

Si no necesita implementacion para algun caso en especifico,bastaria con solo definirlos.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #5 (permalink)  
Antiguo 08/07/2007, 19:57
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Re: interfaces cuando usarlas, ventajas, etc.

El mejor ejemplo es cuando utilzas base de datos, los diferentes fabricantes de base de datos tienen que implementar las interfaces establecidas por sun, para que de este modo sean conpatibles....

have funnnnnnnnnnnnnnnn
  #6 (permalink)  
Antiguo 11/07/2007, 08:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 29
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: interfaces cuando usarlas, ventajas, etc.

Holas!

Más que para 'obligar' a implementar algunos métodos yo le veo la utilidad en el polimorfismo que adquiere un objeto,
Siguiendo con el ejemplo, supongamos que tenemos las clases 'Persona', 'Tirano', 'Afortunado', 'PobreInfeliz', etc, todas ellas implementando la interface 'Humano', o sea, todos ellos comen, respiran y descanzan pero además de comer, respirar y descanzar a su estilo tienen distintos comportamientos y atributos.
Ahora, podemos reunirlos a todos en (por ejemplo) un arreglo de tipo Humano, ya que son instancias de su propia clase y además de la interface a la que implementan. Si además consideramos que puedes implementar más de una interfaz tenemos objetos que son Persona, Humanos y en una de esas implementan la interface Artista, asi que sería instancia de tres tipos.

Espero se capte la idea. Asi se tiene en una sola estructura muchas especificaciones distintas (las que sean necesarias para tu aplicación).

Como se dice más arriba, en app pequeñas no se ve la utilidad, pero cuando algo crece, se hacen muy útiles y necesarias!
  #7 (permalink)  
Antiguo 11/07/2007, 09:46
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Re: interfaces cuando usarlas, ventajas, etc.

Mas que nada es para el diseno de software! son muy utilizadas entre los arquitectos de software, analistas de sistemas, profesionales, etc...

have funnnnnnnnnnnnnn
  #8 (permalink)  
Antiguo 13/04/2009, 11:44
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
interfaces cuando usarlas, ventajas, etc.

A mi me queda una duda más... dieron el ejemplo de la Interfaz HUMANO.. pero no podría resolverse creando una clase HUMANO y crear subclases que hereden de estas y modifiquen atributos y métodos según se necesiten?

A mi tampoco me queda muy claro cual sería su verdadera ventaja o uso teniendo el escenario que planteo arriba.

Saludos y felicitaciones por esta increíble web que muchas veces me solucionan un montón de problemas y es una primera referencia cuando busco algo.
  #9 (permalink)  
Antiguo 13/04/2009, 12:10
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: interfaces cuando usarlas, ventajas, etc.

Hola

mas que nada es para implementar polimorfismo a un nivel mas alto que el que se puede implementar con una jerarquia de clases con herencia simple

Por ejemplo, una persona puede respirar, pero tambien un perro y otro tipo de especies, entonces si implementamos una interface que se llame AparatoRespiratorio con la funcion respirar() la pueden implementar cualquiera de las 2 clases (Persona y Perro), ahora bien si la funcion respirar la implementaramos en una clase que se llamara Humano, tendriamos que hacer que la clase Perro heredara de Humano lo cual no es correcto.
Para eso se usan las interfaces y para otras cosas mas, espero que te haya quedado mas claro con esta explicacion

Saludos
  #10 (permalink)  
Antiguo 13/04/2009, 12:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: interfaces cuando usarlas, ventajas, etc.

Cita:
Iniciado por pooreli Ver Mensaje
A mi me queda una duda más... dieron el ejemplo de la Interfaz HUMANO.. pero no podría resolverse creando una clase HUMANO y crear subclases que hereden de estas y modifiquen atributos y métodos según se necesiten?
Heredar sólo puedes heredar de una clase, interfaces puedes implementar tantos como quieras. Por eso a veces es mejor usar una interfaz que "obligar" a extender una clase.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:55.