Chamar métodos no arraylist
I
Eu e um amigo estamos fazendo um código mas estamos com um problema. É possível criarmos os objetos de cada classe, porém quando os armazenamos no ArrayList deixamos de ter acesso aos métodos e atributos de suas classes, apenas temos acesso aos atributos da classes abstrata que dá o tipo do ArrayList que no nosso caso é Veiculo. Não dá para acessar os métodos da interface implementada e atributos originais das classes Carro e Onibus.
2 Respostas
1 like
É só percorrer o arraylist. Exemplo:
for(Veiculo /*pode ser do tipo Carro ou Onibus*/ veiculo : veiculos) {
veiculo.metodoDaClasse();
}
Com Java 8:
veiculos.forEach(veiculo -> {
veiculo.metodoDaClasse()
});
1 like
Complementando o @lucas.sampaio , se você precisa dos métodos das classes derivadas, precisa fazer um cast quando pegar o valor do arraylist. Isso implica saber o tipo no índice que for pegar do arraylist. Algo como:
Carro carro = (Carro) veiculos.get(0); // faz cast de Veiculo para Carro.
carro.metodoPresenteEmCarro();
Se a posição desejada não for do tipo do cast (Carro, nesse exemplo), você terá um erro em tempo de execução.
Mini-exemplo: link
Abraço.
Criado 26 de setembro de 2022
Ultima resposta 26 de set. de 2022
Respostas 2
Participantes 3
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
