A Programação Orientada a Objetos (POO) utiliza conceitos de...

Próximas questões
Com base no mesmo assunto
Q3832908 Programação
A Programação Orientada a Objetos (POO) utiliza conceitos de classes e objetos para organizar o software em unidades reutilizáveis. Acerca de herança e polimorfismo em sistemas orientados a objetos, marque V para as afirmativas verdadeiras e F para as falsas.

( ) O polimorfismo de inclusão permite que objetos de subclasses sejam tratados como objetos de suas superclasses, possibilitando a invocação de métodos sobrescritos conforme o tipo real do objeto.
( ) A herança múltipla de classes é um recurso obrigatório e presente de forma nativa em todas as linguagens modernas, como Java e C#, para garantir a máxima flexibilidade de design.
( ) Classes abstratas são componentes de design que não permitem a criação direta de instâncias, servindo como modelos para outras classes que devem implementar seus métodos obrigatórios.
( ) O princípio do encapsulamento determina que todos os atributos de uma classe devem ser obrigatoriamente públicos para facilitar o acesso de outras classes e reduzir o acoplamento.

Após análise, assinale a alternativa que apresenta a sequência CORRETA dos itens acima, de cima para baixo:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: O ponto decisivo era confrontar cada assertiva com conceitos básicos de POO: polimorfismo por inclusão, ausência de herança múltipla nativa de classes em Java e C#, não instanciação de classes abstratas e encapsulamento como controle de acesso. Esse confronto fixa a sequência V, F, V, F e, por consequência, a alternativa B.

Tema central: Herança, polimorfismo, classes abstratas e encapsulamento em POO
Análise das alternativas
A
Errada
Incorreta porque trata o item 2 como verdadeiro e o item 3 como falso. Isso contraria dois pontos objetivos: herança múltipla de classes não é obrigatória nem nativa em Java e C#, e classes abstratas realmente não são instanciadas diretamente e funcionam como base para subclasses.
B
Certa
A alternativa B é a correta porque corresponde à sequência V, F, V, F. O item 1 está correto ao descrever polimorfismo por inclusão/subtipo: um objeto de subclasse pode ser tratado por referência de superclasse, com execução do método sobrescrito conforme o tipo real do objeto. O item 2 está errado porque herança múltipla de classes não é obrigatória nem presente de forma nativa em todas as linguagens modernas, e Java e C# não a suportam para classes. O item 3 está correto porque classes abstratas não podem ser instanciadas diretamente e servem como base para subclasses. O item 4 está errado porque encapsulamento significa ocultação e controle de acesso ao estado, não publicidade obrigatória dos atributos.
C
Errada
Incorreta porque marca o item 3 como falso. Esse item está correto no essencial: classe abstrata não pode ser instanciada diretamente e serve como modelo/base para outras classes.
D
Errada
Incorreta porque inverte os itens 1 e 2. O item 1 descreve corretamente polimorfismo por inclusão/subtipo, enquanto o item 2 erra ao afirmar universalidade e obrigatoriedade da herança múltipla de classes, além de citar Java e C# como se a adotassem para classes.
E
Errada
Incorreta porque marca o item 1 como falso e o item 4 como verdadeiro. O item 1 está de acordo com o conceito de subtipo e despacho de método sobrescrito; o item 4 inverte encapsulamento, que é restrição e organização do acesso aos dados, não exposição pública obrigatória.
Pegadinha da questão
A questão explora confusões reais entre polimorfismo por subtipo e outros sentidos de polimorfismo, entre menção a linguagens modernas e suposta universalidade da herança múltipla de classes, e entre encapsulamento e facilidade de acesso externo.
Dica para questões semelhantes
  • Quando a assertiva falar em subclasse tratada como superclasse com execução do método sobrescrito conforme o tipo real, o critério é polimorfismo por inclusão/subtipo.
  • Se a frase usar termos absolutos como "obrigatório", "todas as linguagens" ou citar Java e C# para herança múltipla de classes, confronte com o fato de que essas linguagens não a suportam para classes.
  • Para classe abstrata, verifique o núcleo do conceito: não há instanciação direta e há função de base para subclasses.
  • Para encapsulamento, teste a assertiva pela ideia de controle de acesso ao estado; se ela exigir atributos públicos, está contrariando o conceito.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito B

1 - Verdadeiro;

2 - Falso. Muitas linguagens modernas, como Java e C#, não permitem herança múltipla de classes para evitar problemas. Elas utilizam Interfaces para alcançar resultados semelhantes de forma mais segura.

3 - Verdadeiro;

4 - Falso. É exatamente o oposto! O encapsulamento prega que os dados (atributos) devem ser privados ou protegidos, sendo acessados apenas por métodos específicos (getters e setters). Isso reduz o acoplamento e aumenta a segurança do código.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo