Duvidas sobre Override

Ola… estou tendo problemas para tratar um método add(), e desenvolvi este exemplo para mostrar o problema,
Na classe Run abaixo tenho o método que faz o get() de um HashMap, adiciona um novo papel + adiciona um Objeto ou insere em um papel ja existente
Porém eu precisava tratar de alguma forma o add, ou seja, antes dele inserir preciso saber o que ele está inserindo
Como eu posso fazer isso na forma que está ai?

[code]public class Run{

public static void main(String[] args) {
	
	Tipo celta = new Carro();

	Tipo vtec  = new Motor();
	Tipo vhc   = new Motor();

	
	celta.get("motores").add(vtec);	
	celta.get("motores").add(vhc);
	
}

}[/code]

[code]public abstract class Tipo{

static HashMap<String, List> valor = new HashMap<String, List>();	
public String papel;

public List get(String papel) {
	this.papel= papel;
	
	List retorno = this.valor.get(this.papel);

    if (retorno == null) {

	    retorno = new ArrayList();	
		
        this.valor.put(papel, retorno);
		
	} 
	
	return retorno;
}

}[/code]

Alguma dica?

Seu List é List de o quê?

Object

OK, a primeira coisa então é trocar List por List e ArrayList por ArrayList. O que ocorre depois?

infelizmente não estou mais em casa e não posso testar… mas meu principal problema é tratar o add() antes de realmente adicionar no List

chegando em casa eu testo e posto aqui mais tarde

Obrigado