Generalização (Dúvidas de Implantação)

É o seguinte: Sou recente no mundo da orientação a objetos. Tenho algumas dúvidas, mas atualmente, estou com um probleminha e gostaria de uma dica. Acontece que no sistema que estou desenvolvendo, tenho tipos de usuários e o que os diferenciam é o tipo de identificação. Eu criei uma classe Geral Funcionário e fiz suas especializações. Como já falei só muda o tipo de identificação. Ex.: Matricula, Funcional, CPF. Cada tem seu tipo.
Primeiro pensei em criar uma classe tipo de identificação, mas depois mudei de idéia.
O grande problema, é que no momento de preencher um combo com o tipo de usuário para ser cadastrado, qual classe me retornará isto?

Desde já agradeço

Opa…faça assim. Crie uma variavel do tipo Objeto Genérico. Ai, conforme a escolha do combo, você istancia o objeto concreto adequado.
Mais ou menos assim:

ClasseGenerica funcionario; if(escolha = escolha1) funcionario = new ClasseConcreta1(); else funcionario = new ClasseConcreta2();

Era essa sua duvida !?