| |
Mais casting
Sintaxe idêntica à dos tipos básicos
- Uma variável declarada com uma classe pode ser reinterpretada (cast) como sendo da classe do objecto que contém
- Voltemos ao uso das classe Gerente e Empregado...
- Seja Empregado misterio = pessoal[1]; // Objecto é Gerente
- ...misterio.ajudante; // Erro de compilação
- ...(Gerente)misterio.ajudante // funciona
- Casting permitirá "rebaldaria"?
- Empregado x = pessoal[QUALQUER]; // funciona
- Gerente patrao = (Gerente)pessoal[0]; ...patrao.ajudante // erro de execução
- Casting não transforma objectos, só os "reclassifica"
- Pode usar-se instanceof para ver possibilidade de efectuar casting
- if (misterio instanceof Gerente) X=(Gerente)misterio.ajudante;
|