Switch

5 respostas
F

Eu tenho Pessoa que é classe abstrata.
Professor, coordenador e Aluno herdam nome e cpf de Pessoa.

Há erro na variável pessoa (duplicado). Tem como eu resolver isso ? Eu não queria criar três variáveis e não queria colocar pessoa.setNome(nome); pessoa.setCpf(cpf); (mudando a variável pessoa, lógico) dentro de cada case.

Grata,
Fátima.

5 Respostas

wfuertes

Uma forma seria usar o polimorfismo de Pessoa, porém não teria acesso à todos métodos especializados por Aluno, Coordenador e Professor (a menos que estes fossem definidos como abstratos em Pessoa), pelo menos não do jeito que vou sugerir:

Pessoa pessoa;

switch(tipo) { 
case 1: 
pessoa = new Professor();	
break; 
case 2: 
pessoa = new Coordenador(); 
break; 
default: 
pessoa = new Aluno(); 
} 

pessoa.setNome(nome); 
pessoa.setCpf(cpf);

Pensando rápido seria isso, vou refletir mais. T+

F

Muito Obrigada!

F

só lembrando que classes abstratas não podem ser instanciada

Diguinho.Max

Use polimorfismo!

M

isso mesmo, polimorfismo resolve o seu problema (:

Criado 13 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 5
Participantes 5