Si vas a guardar en la lista objetos de distintas clases pero que todas ellan son subclases de otra, entonces es conveniente que utilices la clase base como el tipo de dato a guardar.
Código Java:
Ver originalLinkedList<ClaseGeneral> lista = new LinkedList<ClaseGeneral>();
ClaseHija1 objeto1 = new ClaseHija1(); //Este objeto es de la clase ClaseHija1, que supongo que hereda de la clase ClaseGeneral
ClaseHija2 objeto2 = new ClaseHija2(); //Este objeto es de la clase ClaseHija2, que supongo que hereda de la clase ClaseGeneral
ClaseGeneral objeto3 = new ClaseHija3();//Este objeto es de la clase ClaseHija2, que supongo que hereda de la clase ClaseGeneral. Fíjate que puedes asignar un objeto de la subclase ClaseHija3 a una referencia de la clase base, esto es porque un objeto de la clase ClaseHija3 "es" un objeto de la clase ClaseGeneral
lista.Add(objeto1);
lista.Add(objeto2);
lista.Add(objeto3);