Instanceof

2 respostas
C

Boa tarde galera!

Bom eu to com um exercicio que esta me dando um pouco de dor de cabeca aki... eu possou a segunte heranca:
[img]http://img60.imageshack.us/img60/3984/herancagz5.jpg[/img]

Aí eu gostaria de criar um método que adicionasse um funcionario... teria como eu usar o método instanceof para criar uma unica classe e saber qual subclasse ele pertence? ou eu teria que criar vários método addFuncionario com argumentos diferentes? tipo assim:

(o vetor empresa é do tipo Funcionario)

public void addFuncionario(FuncionarioAssalariado func)
    {   
        try
        {
            empresa[proximo] = new FuncionarioAssalariado(func);
            proximo++;
        }
        catch(ArrayIndexOutOfBoundsException e)
        {
            System.out.println("A empresa já possui todos os funcionários cadastrados.");
        }
    }

    void addFuncionario(FuncionarioComissionado func) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

2 Respostas

T

Que estranho, por que é que você tem de passar um FuncionarioAssalariado para criar um novo objeto FuncionarioAssalariado? Esquisito :stuck_out_tongue:

(não consigo ver o seu diagrama de hierarquia, essa imagem é hospedada em um servidor que não consigo acessar pelo nosso proxy)

De qualquer maneira, se você tiver algo como (supondo que FuncionarioAssalariado tenha um construtor sem parâmetros):

public void addFuncionario(Funcionario func) 
{
         try  
         {  
             empresa[proximo] = func;
             proximo++;  
         }  
         catch(ArrayIndexOutOfBoundsException e)  
         {  
             System.out.println("A empresa já possui todos os funcionários cadastrados.");  
         }  
}

e você fizer:

addFuncionario (new FuncionarioAssalariado());

deve funcionar sem problemas.

C

Muito obrigado… não havia pensado em fazer assim…

Criado 12 de novembro de 2008
Ultima resposta 12 de nov. de 2008
Respostas 2
Participantes 2