Magna Concursos
4161040 Ano: 2025
Disciplina: TI - Desenvolvimento de Sistemas
Banca: FSADU
Orgão: IF-MA

Considere o seguinte código Java:

import java.util.ArrayList;
import java.util.List;

class Animal {
    void emitirSom() {
        System.out.println("Som genérico");
    }
}
class Gato extends Animal {
    @Override
    void emitirSom() {
        System.out.println("Miau");
    }
}

public class Main {
    public static void main(String[] args) {
        List<Object> caixa = new ArrayList<>
        caixa.add(new Gato());
        caixa.add(new Gato());

        // A
        ((Gato) caixa.get(0)).emitirSom();

        // B
        ((Animal) caixa.get(1)).emitirSom();
    }
}

Analise as afirmações a seguir:

I. A linha A imprime Miau.

II. A linha B também imprime Miau, mesmo sem converter para Gato.

III. Se a lista fosse List<Animal>, daria para remover os casts e ainda adicionar Gato normalmente.

IV. Em List,<Object> get(...) retorna o tipo concreto do elemento, permitindo chamar emitirSom() sem cast.

V. List <Object> é mais segura que List <Animal> para evitar ClassCastException ao recuperar elementos.

Estão corretas apenas as afirmações:

 

Provas

Questão presente nas seguintes provas