0

Dúvida na utilidade do polimorfismo em vetores

Existe algum propósito em permitir que um vetor seja referenciado por sua superclasse? Para uma variavel faz todo sentido, mas um vetor? Em que caso isso seria útil? Apenas contribui para uma possivel ArrayStoreException? Exemplo: public class Program { public static void main(String[] args) { Teste[] vetor = new Teste_A[5]; vetor[0] = new Teste_B(); } } class Teste { } class Teste_A extends Teste { } class Teste_B extends Teste { }

6th Sep 2017, 11:48 PM
Igor Otoni
2 Answers
+ 1
Agora você pode armazenar uma matriz de todas as sub-classes. Exemplo/ Animais [] mundo; // Digamos que eu tenho uma matriz armazenando todos os animais no mundo // Isso teria lobo, cobras, pessoas, elefantes, etc. for (int i = 0; i <mundo.length; i ++) { Animal obj = mundo [i];      if (obj instanceof cobra)        obj.hiss(); } Agora só as Serpentes silenciaram! Mesmo que tenhamos uma matriz segurando todos os animais.
8th Sep 2017, 3:38 AM
Rodrigo Temóteo
Rodrigo Temóteo - avatar
0
Entendi, mas no caso, esse vetor Animais[] mundo seria em algum momento instanciado como new Animais[n] certo? So n consigo ver a utilidade de alguém conseguir fazer um new Elefante[n], ou seja, instanciar um vetor de elefantes e ser referenciado por um vetor Animais.
8th Sep 2017, 12:52 PM
Igor Otoni