如何将继承于同一父类的两个子类的实例存储在一个list或arraylist中?

例如:

public abstract class Animal{
  String name;
  String color;
}

public class Dog extends Animal{
  String skin;
}

public class Cat extends Animal{
  String fur;
}

如果我在程序中想将猫和狗放在同一个列表或存储区中,然后在不同情况下提取出其中实例进行处理,应当如何才能实现?

img
有帮助,望采纳!!!


public class Main3 {
    class A {
        String strA = "strA";
    }
    class B extends A{
        String strB = "strB";

        @Override
        public String toString() {
            return "B{" +
                    "strA='" + strA + '\'' +
                    ", strB='" + strB + '\'' +
                    '}';
        }
    }
    class C extends A{
        String strC = "strC";

        @Override
        public String toString() {
            return "C{" +
                    "strA='" + strA + '\'' +
                    ", strC='" + strC + '\'' +
                    '}';
        }
    }
    public void test(){
        List<A> list = new ArrayList<>();
        B b = new B();
        list.add(b);
        C c = new C();
        list.add(c);
        System.out.println(list.get(0).toString());
        System.out.println(list.get(1).toString());
    }
    public static void main(String[] args) {
        new Main3().test();
    }
}