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

concepto de INTERFACE. java

Estas en el tema de concepto de INTERFACE. java en el foro de Java en Foros del Web. Hola, Stoy aprendiendo java por primera vez y veo diferencias entre los Interfaces de Java Y los interfaces C en programacion procedural: C: .c (giveMeNum ...
  #1 (permalink)  
Antiguo 09/03/2014, 12:14
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 12 años
Puntos: 0
concepto de INTERFACE. java

Hola,

Stoy aprendiendo java por primera vez y veo diferencias entre los Interfaces de Java Y los interfaces C en programacion procedural:

C:
.c (giveMeNum - llamada funcion)
.h (giveMeNum - declaracion funcion)
.c (giveMeNum - implementacion funcion)

Desde un .c llamas a la funcion, que esta declarada en el .h del interface y otro .c distinto al primero implementa. Es decir, una unica implementacion!


JAVA:
clase interface
Clase que usa interface y ademas implementa

En java por lo que veo cada clase implementa el ingerfaz que hereda. A difefencia de c que esta implementado en un unico sitio y todos los que quieren eaa info llaman a la fu cion.


Podeis explicarmelo? Es correcto o me pierdo e algo?
Gracias
  #2 (permalink)  
Antiguo 09/03/2014, 14:37
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 17 años, 9 meses
Puntos: 454
Respuesta: concepto de INTERFACE. java

C procedural no es orientado a objetos, java sí lo es, por lo que es difícil comparar. Java se parece más a C++.

En java como bien dices, puede haber varias clases que implementen una misma interfaz o sólo una, depende de lo que quieras o necesites, en C no puedes hacerlo, el linker de C sólo te admite una implmentación de una función definida en un .h. Pero sí podrías en C++ hacer varias clases que implemente una misma interfaz de C++, ya que también es orientado a objetos.

El motivo de esto es que en java se permite el polimorfismo (en C++ también, en C no), es decir, varias implementaciones de una misma interfaz. Tu código java podría trabajar con la interfaz sin saber con qué clase concreta está trabajando. por ejemplo,

Código Java:
Ver original
  1. public void unMetodo (UnaInterfaz a){
  2.    a.metodoDeLaInterfaz();
  3. }

A este unMetodo podrías llamarlo de estas formas

Código Java:
Ver original
  1. unMetodo (new UnaClaseQueImplementeLaInterfaz());
  2. unMetodo (new OtraClaseQueImplementeLaInterfaz());

y ambos funcionaran. Dentro de unMetodo(), la llamada a.metodoDeLaInterfaz() llamará realmente al metodoDeLaInterfaz() implementado en una u otra clase, según le hayamos pasado.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 10/03/2014, 01:43
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 12 años
Puntos: 0
Respuesta: concepto de INTERFACE. java

Ok, gracias.

¿Se podría implementar algo parecido a esto?
Esto es, una clase implementa métodos que son utilizados por todas las clases que puedan acceder a ese interface. Esta es mi forma de ver los interfaces, pero como he dicho antes, en programación procedural.


ClaseA ---------
.............................|
.............................v
................."ClaseInterface"---------> "ClaseImplementa interface"
.............................^
.............................|
.............................|
ClaseB----------


Un saludo
  #4 (permalink)  
Antiguo 10/03/2014, 02:13
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 17 años, 9 meses
Puntos: 454
Respuesta: concepto de INTERFACE. java

sí, se puede. En java además el esquema sería más amplio, de ClaseInterface podrías salir muchas flechas a Clases que implementan interfaz.

En java la interfaz de una clase y la implementación no se separan en un .h y un .c, en java sólo hay un .java y la implementación de la clase de alguna forma define la propia interfaz de la clase.

En java tienes interfaces que puedes declarar así

Código Java:
Ver original
  1. public interface UnaInterface {
  2.    metodos sin implementar
  3. }

pero es algo que es totalmente opcional, puedes o no hacerla según la necesites o no. Lo habitual es hacerla si tienes pensado utilizar más adelante el polimorifsmo. Una clase java puede o no implementar una interface. Es válida cualquiera de estas opciones

Código Java:
Ver original
  1. public UnaClase implements UnaInterface {
  2.    implementacion de metodos
  3. }

Código Java:
Ver original
  1. public OtraClase {
  2.     implementacion de metodos.
  3. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 10/03/2014 a las 02:21

Etiquetas: clase, concepto, interface, programa
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 11:57.