O que você quer fazer?
A construção que está usando está errada.
Você até consegue instanciar a lista, mas não consegue usá-la.
Crie uma lista que armazena Animais e então insira objetos das subclasses de Animal.
Exemplo:
[code]import java.util.*;
public class TesteAnimal {
public static void main( String[] args ) {
List<Animal> alist = new ArrayList<Animal>();
Cachorro c = new Cachorro();
Gato g = new Gato();
alist.add( c );
alist.add( g );
for ( Animal a : alist ) {
a.falar();
}
}
}
abstract class Animal {
public abstract void falar();
}
class Cachorro extends Animal {
@Override
public void falar() {
System.out.println( "au au" );
}
}
class Gato extends Animal {
@Override
public void falar() {
System.out.println( "miau" );
}