O mecanismo de composição de objetos é essencial em um siste...
I - Um objeto de uma classe C qualquer pode ser composto de outros objetos, sendo que esses últimos podem também ser da classe C.
II - Uma mensagem pode ser enviada de um objeto da classe ClasseA para um objeto da classe ClasseB, sem que a definição de ClasseA faça referência à ClasseB.
III - Uma operação, definida em uma classe abstrata C qualquer, pode ser invocada por um objeto de alguma superclasse de C.
É(São) correta(s) a(s) afirmativa(s)
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a letra B: I e II, apenas. Vamos analisar cada uma das afirmativas para compreender a resposta:
Alternativa I: Correta. Em um sistema de software orientado a objetos, um objeto pode, de fato, ser composto de outros objetos. Isso é conhecido como composição, e esses objetos podem ser tanto da mesma classe quanto de classes diferentes. Este é um conceito fundamental da orientação a objetos e permite a construção de sistemas complexos a partir da composição de objetos mais simples.
Alternativa II: Correta. A afirmação descreve um princípio de desacoplamento. Em orientação a objetos, objetos de diferentes classes podem se comunicar por meio de mensagens sem que um conheça a implementação específica do outro. Esta é uma prática que promove a modularidade e facilita a manutenção e a evolução do software.
Alternativa III: Incorreta. A afirmação apresenta um erro conceitual. Uma operação definida em uma classe abstrata deve ser invocada por um objeto de uma de suas subclasses, e não de uma superclasse como mencionado. As classes abstratas são frequentemente utilizadas como um contrato, onde algumas ou todas operações não são implementadas, sendo responsabilidade das subclasses concretizar tal implementação.
Portanto, as afirmativas corretas que refletem conceitos válidos na programação orientada a objetos são apenas as afirmativas I e II.
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
A - Correta pois um objeto pode ter instância de si mesmo
B - Correta pois duas classes podem implementar a mesma interface, na qual possui um metodo definido. Com isso a classe A poderia invocar um metodo da classe B sem ter um referencia da classe C
C - Errada - Pois a superclasse não conseguiria chamar metedos definos nas classes filhas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo