📌  相关文章
📜  añadir objetos de diferentes clases en una misma lista - Java (1)

📅  最后修改于: 2023-12-03 14:59:19.758000             🧑  作者: Mango

Añadir objetos de diferentes clases en una misma lista - Java

En Java, es posible agregar objetos de diferentes clases a una misma lista, siempre y cuando todas las clases sean subclases de una clase común o implementen una interfaz común. Esto se debe al polimorfismo, que permite tratar a objetos de diferentes clases de forma genérica.

Para ilustrar esto, vamos a crear una lista que contenga diferentes tipos de animales. Supongamos que tenemos las siguientes clases: Animal, Perro y Gato. La clase Animal es una clase base, mientras que Perro y Gato son subclases de Animal.

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Creamos una lista de animales
        List<Animal> listaAnimales = new ArrayList<>();

        // Creamos instancias de Perro y Gato
        Perro perro = new Perro("Bobby");
        Gato gato = new Gato("Garfield");

        // Añadimos los animales a la lista
        listaAnimales.add(perro);
        listaAnimales.add(gato);

        // Recorremos la lista e imprimimos los nombres de los animales
        for (Animal animal : listaAnimales) {
            System.out.println(animal.getNombre());
        }
    }
}

class Animal {
    private String nombre;

    public Animal(String nombre) {
        this.nombre = nombre;
    }

    public String getNombre() {
        return nombre;
    }
}

class Perro extends Animal {
    public Perro(String nombre) {
        super(nombre);
    }
}

class Gato extends Animal {
    public Gato(String nombre) {
        super(nombre);
    }
}

En este ejemplo, creamos una lista llamada listaAnimales de tipo List<Animal>, que permitirá almacenar objetos de la clase Animal y sus subclases. Luego, creamos instancias de Perro y Gato y las agregamos a la lista utilizando el método add(). Finalmente, recorremos la lista y, para cada animal, imprimimos su nombre utilizando el método getNombre().

La salida del programa será:

Bobby
Garfield

Como se puede observar, podemos almacenar objetos de diferentes clases en una misma lista y realizar operaciones genéricas sobre ellos, sin necesidad de preocuparnos por la clase concreta de cada objeto. Esto es posible gracias al polimorfismo y a la herencia en Java.