Coleções Hetergêneas

3 respostas
O

gente, pode ser ateh bobo D+
mas, digamos q eu tenha:

class Funcionario {

public void decimoTerceiro(){

}
}

class Professor extends Fucnionario{



}
class Coordenador extends Professor {

Funcionario[] f =new Funcionario[10];

f[0] = New Coordenador();

}

me perdi nesse lance :funcionario[0] = New Coordenador();

3 Respostas

leonardom

Seguindo a hierarquia de suas classes:

Um coordenador é um professor (Coordenador extends Professor), que por sua vez é um funcionário (Professor extends Funcionario). Então vc pode fazer isso normalmente:

Funcionado f1 = new Professor();

Funcionado f2 = new Coordenador();

Professor p1 = new Coordenador();

Como vc tem um array de Funcionarios e um coordenador é um funcionario então vc pode colocá-lo nesta lista normalmente.

Espero que tenha ficado mais claro.

O

então, tenho:

class Funcionario {

public void salario(double dblSalario) {



}

}

class Coodenador extends Funcionario {

Funcionario[] f1 = new Professor();
// posso fazer

f1[0].salario(4.12) ;

}

eh sempre por valor neh ? tanto Objetos qto tipo primitivos

danieldestro

Exato!

Neste caso você está tratando Professor como um funcionário, então só pode invocar os métodos da classe Funcionario.

E passagem é SEMPRE por valor.

Criado 23 de abril de 2004
Ultima resposta 23 de abr. de 2004
Respostas 3
Participantes 3