Questão de Programação — Java — Quadrix 2025
- Código
- qg600012
- Banca
- Quadrix
- Órgão
- CRO-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Desenvolvimento de Sistemas de Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. A afirmação está incorreta porque Java não suporta herança múltipla de classes nativamente: uma classe pode herdar de apenas uma superclasse (herança simples), usando a palavra-chave extends. A herança múltipla em Java só é possível por meio de interfaces, pois uma classe pode implementar várias interfaces. Portanto, uma classe Dentista não pode herdar diretamente de Pessoa e Funcionario ao mesmo tempo.
A herança é um dos pilares da programação orientada a objetos e permite que uma classe (subclasse) reutilize atributos e métodos de outra (superclasse). Em Java, essa relação é estabelecida com a palavra-chave extends, e a linguagem adota a herança simples: cada classe pode ter apenas uma superclasse direta. Essa restrição foi uma decisão de design para evitar o chamado "problema do diamante", que ocorre quando uma classe herda de duas superclasses que possuem métodos com a mesma assinatura, gerando ambiguidade sobre qual implementação deve ser usada.
Na prática, se você quiser que Dentista tenha características de Pessoa e Funcionario, a solução em Java é usar interfaces: Dentista pode estender Pessoa (herança de classe) e implementar Funcionario (se Funcionario for uma interface). As interfaces definem um contrato de métodos abstratos que a classe deve implementar, e uma classe pode implementar quantas interfaces quiser. Isso permite simular a herança múltipla sem os problemas de ambiguidade.
A pegadinha desta questão está em confundir herança de classes com implementação de interfaces. A banca afirma que a herança múltipla de classes é permitida nativamente, o que é falso. O candidato que sabe que Java permite implementar múltiplas interfaces pode ser induzido a marcar "Certo", mas o enunciado fala especificamente de "herança múltipla de classes", o que não existe em Java.
A banca troca o conceito de herança de classes (que é simples em Java) pelo de implementação de interfaces (que permite múltiplas). Fique atento: quando a questão disser "herança múltipla de classes", lembre-se de que isso é proibido em Java; a múltipla só vale para interfaces.
A afirmação está errada porque Java não permite herança múltipla de classes. Uma classe só pode ter uma superclasse direta, usando extends. Para herdar comportamento de múltiplas fontes, a solução é implementar várias interfaces, mas isso não é herança de classes. Portanto, Dentista não pode herdar diretamente de Pessoa e Funcionario como classes.
Gabarito: E — ERRADO.
Link permanente: /questoes/qg600012