Meu problema é o seguinte.
Tenho que fazer o cadastro de uma empresa, está empresa possui funcionários.
Os funcionários são divididos entre: Administrador, Horistas, Comissionados, Gerente.
Cada uma dessas classes de funcionários, possuem uma classe, é uma em comum entre elas. (no caso a classe funcionário é comum para todas as outras, usando a idéia de herança, consigo “ligar” a classe funcionário as outras (Administrador, Horista, Comissionado, Gerente).
Porém, tenho que armazenar todos os dados em um único vetor. Como Fazer um vetor assim?
Como trabalhar com um vetor de super classes?
3 Respostas
Você pode fazer um vetor do tipo da superclasse. Qual a dificuldade que está tendo com isso?
Ex:
public class Teste{
class ClasseBase{}
class PrimeiraDerivada extends ClasseBase{}
class SegundaDerivada extends ClasseBase{}
public static void main(String args[]) throws java.lang.Exception {
new Teste().metodoTeste();
}
public void metodoTeste(){
List<ClasseBase> lista = new ArrayList<ClasseBase>();
lista.add(new PrimeiraDerivada());
lista.add(new SegundaDerivada());
}
}
Obviamente, pra trabalhar com os subtipos, você precisará de cast.
Abraço.
Minha dúvida era essa.
Porque cada sub classes possui métodos a mais que a outras, inclusive mais métodos do que a superclasse tem.
Por serem diferente entre si. Mas por herdarem alguns métodos da superclasse, se eu poderia colocar tudo num vetor, já que são diferentes entre si, pensei em vetor heterogêneo
Vai do que você achar mais prático. Os métodos herdados poderão ser chamados normalmente, e os específicos precisarão de cast.
Abraço.
Criado 4 de dezembro de 2017
Ultima resposta 4 de dez. de 2017
Respostas 3
Participantes 2
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo