Considere as afirmações relacionadas à programação orientad...

Próximas questões
Com base no mesmo assunto
Q1245044 Programação
Considere as afirmações relacionadas à programação orientada a objetos.
I - Uma classe abstrata pode ser herdada e não permite instâncias em novos objetos. Vale ressaltar que todo método abstrato, presente na classe abstrata, possui implementação. II - Um código com alto acoplamento e baixa coesão diminui o impacto na manutenção. III - A agregação é implementada utilizando os mecanismos de herança de classe.
Assinale a alternativa correta.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - I, II e III são falsas.

Vamos analisar cada uma das afirmações para entender a resposta:

I - Uma classe abstrata pode ser herdada e não permite instâncias em novos objetos. Esta parte da afirmação está correta. Uma classe abstrata é destinada a ser uma classe base que não pode ser instanciada, ou seja, não podemos criar objetos diretamente dela. No entanto, a afirmação seguinte, "Vale ressaltar que todo método abstrato, presente na classe abstrata, possui implementação", é falsa. Métodos abstratos definidos em uma classe abstrata não possuem implementação; eles devem ser implementados pelas subclasses que herdam da classe abstrata.

II - Um código com alto acoplamento e baixa coesão diminui o impacto na manutenção. Esta afirmação é o oposto do que é considerado uma boa prática no desenvolvimento de software. Alto acoplamento significa que as partes do código são fortemente dependentes umas das outras, o que faz com que uma alteração em uma parte possa afetar muitas outras, aumentando o impacto na manutenção. Baixa coesão refere-se a ter classes que realizam muitas funções diferentes ou não relacionadas, o que também dificulta a manutenção. Procura-se baixo acoplamento e alta coesão para facilitar a manutenção e a compreensão do código.

III - A agregação é implementada utilizando os mecanismos de herança de classe. Essa afirmação não é verdadeira. Agregação e herança são conceitos distintos na programação orientada a objetos. A agregação é uma associação que representa uma relação "tem-um" ou "parte-de", onde um objeto contém ou faz referência a outros objetos. A herança é um mecanismo pelo qual uma classe pode herdar características (atributos e métodos) de outra classe. Eles são utilizados em diferentes cenários e têm diferentes implicações no design do seu sistema.

Com base nessa análise, concluímos que todas as afirmações são falsas.

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(E)

I - Uma classe abstrata pode ser herdada e não permite instâncias em novos objetos. Vale ressaltar que todo método abstrato, presente na classe abstrata, possui implementação.

II - Um código com alto acoplamento e baixa coesão diminui o impacto na manutenção.

III - A agregação é implementada utilizando os mecanismos de herança de classe.

Correções:

I - Métodos abstratos não possuem implementação.

II - As características mencionadas aumentam o impacto na manutenção.

III - São utilizado mecanismos de associação, assim como na composição.

Fontes: características básicas de Orientação a Objeto. Qualquer artigo fala sobre isso.

I - Uma classe abstrata pode ser herdada e não permite instâncias em novos objetos. Vale ressaltar que todo método abstrato, presente na classe abstrata, possui implementação.

É a classe concreta que deverá implementar os métodos abstratos que existirem na classe abstrata que ela estendeu.

II - Um código com alto acoplamento e baixa coesão diminui o impacto na manutenção.

Justamente o contrário (baixo acoplamento e alta coesão)

III - A agregação é implementada utilizando os mecanismos de herança de classe

A agregação, assim como a composição, são associações um para muitos, com a diferença de que as classes agregadas independem da classe agregadora.

Coesão está ligado ao princípio da responsabilidade única e diz que uma classe deve ter apenas uma única responsabilidade e realizá-la de maneira satisfatória, ou seja, uma classe não deve assumir responsabilidades que não são suas.

O acoplamento significa o quanto uma classe depende da outra para funcionar. E quanto maior for esta dependência entre ambas, dizemos que estas classes elas estão fortemente acopladas.

Ou seja:

II - Um código com alta coesão (responsabilidade única) e baixo acoplamento (pouca ou nenhuma dependência) diminui o impacto na manutenção.

Classes abstratas não podem ser instanciadas. Diferentes classes concretas de uma mesma classe abstrata podem sobrescrever o mesmo método.

Um benefício do baixo acoplamento é permitir realizar a manutenção em um módulo sem se preocupar com os detalhes internos dos demais módulos.

Coesão é uma extensão natural do conceito de ocultamento de informação. Um módulo coeso realiza uma única tarefa, requerendo pouca interação com outros componentes em outras partes do programa.

Clique para visualizar este comentário

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