Questão nº 36

Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 36)

CESGRANRIO2024Analista - Análise de Sistemas (Desenvolvimento)Análise de Sistemas
Gabarito: Aver comentário ↓

Um desenvolvedor está trabalhando em um sistema bancário que precisa lidar de forma consistente com diferentes tipos de contas, todas definidas como subclasses da classe ContaGenerica, como ContaCorrente e ContaPoupanca. Para isso, ele decide usar classes genéricas em Java para criar uma classe genérica TrataConta que só trataria subclasses da classe ContaGenerica.

Considerando-se esse contexto, qual das seguintes opções inicia corretamente a definição da classe genérica desejada?

Resposta comentada

Gabarito Alternativa A

Conceito-chave: Em Java, extends em genéricos não significa só herança de classe, mas também "é um subtipo de" (incluindo implementação de interface). Para restringir um tipo genérico a uma classe específica ou suas subclasses, usamos T extends ClasseBase.

  • (A) Correta: public class TrataConta<T extends ContaBancaria> — é exatamente a sintaxe correta: T é o tipo genérico, e extends ContaBancaria garante que só podem ser usadas classes que herdam de ContaBancaria (como ContaCorrente e ContaPoupanca).
  • (B) Incorreta: public class TrataConta<ContaBancaria> — aqui ContaBancaria é apenas um nome de parâmetro de tipo (como se fosse T), não uma restrição; qualquer tipo poderia ser usado, quebrando a regra desejada.
  • (C) Incorreta: public class TrataConta<T super ContaBancaria>armadilha clássica: super não é permitido em declaração de classe genérica (só em curingas ? super), e mesmo assim significaria "superclasse de ContaBancaria", o oposto do que se quer.
  • (D) Incorreta: public class TrataConta {T ContaBancaria} — sintaxe inválida: falta <T> na declaração da classe e T não é definido como tipo.
  • (E) Incorreta: public class TrataConta<T implements ContaBancaria>pegadinha da banca: em genéricos, não se usa implements; mesmo para interfaces, a palavra correta é extends (ex.: T extends Interface).

Fonte: CESGRANRIO BNDES 01/2024 Analista - Análise de Sistemas (Desenvolvimento) (Caderno Prova 3). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho