Genericos

Possui as seguintes classes :

class Animal{}
class Cachorro extends Animal{}

Gostaria de adicionar elementos nesse List, mas nao estou conseguindo usar a sintaxe correta, poderiam me ajudar

        List <? extends Animal> alist = new ArrayList<Cachorro>();

grato

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" );
}

}[/code]