 A0: new ArrayList<A0>();, (an object that can store A0 or subtypes) or A0: new ArrayList<A0>();, (an object that can store A0 or subtypes) or A0: new ArrayList<A0>();, (an object that can store A0 or subtypes) or...  and so on. Seven different cases:     0) new ArrayList<