Java - arrayList de interfaces

 
Vista:

arrayList de interfaces

Publicado por brihdz (2 intervenciones) el 21/03/2020 23:18:52
Buenas tardes
tengo la siguiente duda:
si tengo implementada una interfaz en multiples clases podria crear un arrayList de la interfaz y alli guardar todos los objetos que tienen implementada la interfaz ?
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

arrayList de interfaces

Publicado por Kabuto (1381 intervenciones) el 22/03/2020 01:11:30
Pues....
Nunca me había planteado esa pregunta. Y que mejor forma de averiguarlo que probarlo.

He creado 3 clases supersimples.
Dos de ellas implementan la interfaz Comparable

1
2
3
4
5
6
7
8
9
public class Clase1 implements Comparable<Object>{
 
	@Override
	public int compareTo(Object o) {
		// TODO Auto-generated method stub
		return 0;
	}
 
}

1
2
3
4
5
6
7
8
9
public class Clase2 implements Comparable<Object>{
 
	@Override
	public int compareTo(Object o) {
		// TODO Auto-generated method stub
		return 0;
	}
 
}

La tercera, no implementa nada.
1
2
3
public class Clase3 {
 
}

Y en un main de prueba, instancio un ArrayList con la interfaz Comparable como tipo de dato.

Instancio además un objeto de cada una de las tres clases anteriores.

Y si añado los objetos que implementan la interfaz Comparable, el ArrayList los acepta.
Sin embargo la clase que no la implementa, es rechazada y el IDE marca error.
interface


Así que parece ser que la respuesta es SÍ.
Pueden agruparse distintas clases en un ArrayList que compartan interfaz.

Ahora bien, he hecho una prueba demasiado simple.

No se como se comportaría la cosa si se tratase de clases más complejas, con varias interfaces implementadas y otras herencias por detrás.
Pero a priori, parece que sí puede hacerse.
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

arrayList de interfaces

Publicado por Costero (148 intervenciones) el 22/03/2020 01:49:09
Si, no solo podrias, sino deberias hacerlo asi.
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

arrayList de interfaces

Publicado por Rodrigo (623 intervenciones) el 22/03/2020 05:07:50
La interface funciona como una promesa, o como un contrato.
Si una clase dice que implementa una interface, entonces esa clase implementa TODOS los metodos que la interface dice.

Es perfectamente posible crear un arreglo de objetos que implementan 1 (y solo 1 se puede especificar), como se ve en el ejemplo anterior.

En el contenedor de objetos, se sabe que todos los objetos tienen los metodos que la interface especifica, pudiendo cada uno de ellos ser de (completamente) distintas clase.
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

arrayList de interfaces

Publicado por br (2 intervenciones) el 23/03/2020 19:30:30
muchas gracias por tu aporte.
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