Na UML, as classes A e B legam suas estruturas e comportamen...

Próximas questões
Com base no mesmo assunto
Q128142 Engenharia de Software
Na UML, as classes A e B legam suas estruturas e comportamentos à classe C. Considerando apenas o fato apresentado nessa circunstância, é correto afirmar que aí se aplica tipicamente o conceito de

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - herança múltipla.

A herança múltipla ocorre quando uma classe em uma linguagem de programação orientada a objetos é capaz de herdar atributos e comportamentos de mais de uma classe pai ou superclasse. No contexto do enunciado, que descreve o uso de UML (Unified Modeling Language), é mencionado que as classes A e B "legam" suas estruturas e comportamentos à classe C. Isso significa que a classe C está herdando de ambas as classes A e B, configurando assim, um cenário de herança múltipla.

Este conceito é particularmente importante na engenharia de software porque permite uma maior reutilização de código e pode contribuir para a criação de sistemas mais flexíveis e fáceis de manter. Entretanto, a herança múltipla também pode apresentar complexidades, como a ambiguidade de herança, onde duas classes base possuem membros com o mesmo nome.

É fundamental notar que nem todas as linguagens de programação suportam herança múltipla diretamente. Por exemplo, Java não suporta herança múltipla de classes, mas permite herança múltipla de interfaces, enquanto C++ é uma linguagem que suporta herança múltipla de classes.

As outras alternativas não descrevem corretamente o cenário apresentado. Delegação é um padrão de design onde um objeto repassa responsabilidade para um segundo objeto ajudante. Derivação é um termo geral que pode se referir à herança, mas não é específico para herança múltipla. Método polimórfico refere-se à capacidade de métodos de terem diferentes implementações em diferentes classes. Multiplicidade está relacionada com a cardinalidade de relacionamentos entre classes em UML, e não com herança.

Portanto, no contexto do enunciado, a alternativa C é a única que descreve corretamente a situação onde uma classe herda características de duas ou mais classes, estabelecendo um cenário de herança múltipla.

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

Herança Múltipla - ocorre quando uma sub-classe (classe filha) herda características de duas ou mais super-classes(classe mãe).
Delegação - A habilidade de um objeto em emitir uma mensagem para outro objeto em resposta a uma mensagem recebida. A delegação pode ser usada como uma alternativa à herança.
Polimorfismo - Esta associado a herança, trabalha com a redeclaração de métodos previamente herdados de uma classe. 
Multiplicidade - Uma especificação do alcance da cardinalidade permissível que um conjunto pode assumir. Podem ser dadas especificações de multiplicidade para papéis dentro de associações, partes dentro de composições, repetições e em outros propósitos
A resposta é claramente HERANÇA MÚLTIPLA. Entretanto:

Cuida Alison!

No seu comentário disseste que herança consiste em uma classe herdar de duas ou mais classes? Não é uma boa definição.

O melhor seria dizer que herança consiste em uma classe (filha como disseste) herdar os atributos e métodos de uma outra classe.

Agora o assunto de uma, duas ou várias é outro. Algumas inguagens como JAVA, não permitem herança múltipla (herdar mais de uma classe) e muitos autores defendem que isso não deveria ser feito. Fato pelo qual se utiliza INTERFACES.

Polimorfismo também pode ser melhor resumido em: fazer uma "mesma" coisa de várias formas. Agora em OO, quem faz alguma coisa? A resposta seria dividida em duas partes:
- em relação aos métodos, podem ser escritos com mais de uma assinatura, recebendo parâmetros diferentes e efetuando comportamentos diferentes.
- Em relação a objetos, a história é mais longa, mas basta entender a filosofia de INTERFACES que você vai notar que "vários objetos" podem/devem fazer uma determinada coisa (ter um determinado método), logo todos eles, mesmo sendo diferentes, fazem a mesma coisa. Cada um do seu jeito. 
Mais do que UML, o candidato precisava conhecer português.
Segundo dicionário Priberam:
legar - Conjugar
v. tr.
1. Deixar (em legado).
2. Deixar por herança.
3. Transmitir.
4. [Diplomacia]  Enviar como legado.
Fonte: http://www.priberam.pt/dlpo/default.aspx?pal=legam

Sabendo que legar significa deixar por herança a resposta fica bem mais fácil.
Item C

Clique para visualizar este comentário

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