Duvida com classes e tipos

2 respostas
M

No Head first jsp e servlets diz algo assim:

ABSTRACT CLASS Person

  • String getName()
  • void setName(String)

CLASS Employee

  • int getEmpID()
  • void setEmpID(int)
<jsp:useBean id="person" type="foo.Person" class="foo.Employee" scope=request">

dai o codigo gerado seria:
Person person = new Employee();

Mas isso ai não gera erro ?? se eu tentar setar ou pegar o valor de EmpID ??
Não é verificado se o método existe no tipo e depois buscado no objeto ??

2 Respostas

R

Essa classe Employee deve estar herdando de Person, então se o código gerado é esse: Person person = new Employee();, o exemplo tá usando polimorfismo. Nesse caso, só é possível acessar os métodos da classe Person através da referência person, ou seja, getName() e setName().

Valeu!

M

Sim, mas no livro tá assim e diz que seta corretamente o nome e ID.
Mas a minha pergunta é como ele faz isso. Em J2SE se tu fizer Person person = new Employee(); person.setEmID(12);
Dá erro, porque não é possível achar o método setEmID na classe Person.

Criado 2 de novembro de 2006
Ultima resposta 6 de nov. de 2006
Respostas 2
Participantes 2