Pular para o conteúdo principal

Questão de Programação — Java — Quadrix 2025

ProgramaçãoJava
Código
qg600012
Banca
Quadrix
Órgão
CRO-SP
Ano
2025
Nível
Superior
Cargo
Analista de Desenvolvimento de Sistemas de Informação
Durante o desenvolvimento de um sistema de gestão odontológica para uma clínica de médio porte, a equipe de tecnologia optou por criar uma aplicação multiplataforma com recursos de agendamento, prontuário eletrônico e geração de relatórios financeiros. Para isso, diferentes módulos foram desenvolvidos em C#, Python e Java, aproveitando as características específicas de cada linguagem.Com base nessa situação hipotética e nos conhecimentos a respeito de sintaxe, tipos de dados, estruturas de controle, classes, herança e polimorfismo em C#, Python e Java, julgue o item a seguir.Em Java, a herança múltipla de classes é permitida nativamente, o que possibilita que uma classe Dentista herde diretamente de Pessoa e Funcionario.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Herança múltipla em Java

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.

NÃO CAIA NESSA!

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.

Herança em Java
  • 1Herança de classes
    • Herança simples (extends)
    • Herança múltipla de classes
  • 2Herança múltipla
    • Só via interfaces (implements)
    • Evita problema do diamante
LEVEL · soulevel.com.br

Item — ❌ ERRADO

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