Acerca de programação orientada a objetos, Java e PHP, julgu...

Próximas questões
Com base no mesmo assunto
Q893417 Programação

Acerca de programação orientada a objetos, Java e PHP, julgue o item a seguir.


Na herança por especificação, a subclasse especifica a superclasse, acrescentando a ela novos atributos ou métodos, mas mantendo inalterada sua constituição original.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E - Errado

A questão explora o conceito de herança em programação orientada a objetos (POO), um paradigma de programação no qual os conceitos do mundo real são modelados através de classes e objetos. A herança é uma maneira de formar novas classes utilizando classes que foram definidas anteriormente. Nesse processo, a subclasse (ou classe derivada) herda atributos e métodos da superclasse (ou classe base), e pode adicionar novos atributos ou métodos, além de poder modificar ou estender os comportamentos herdados.

No entanto, a afirmativa da questão sugere que na "herança por especificação" a subclasse mantém "inalterada sua constituição original", o que não é exato pois implica que a subclasse não altera de forma alguma a superclasse, o que é um erro de compreensão. Em POO, uma subclasse pode sim alterar o comportamento dos métodos herdados através de um processo chamado overriding (sobrescrita de métodos), além de adicionar novos métodos e atributos. O termo "herança por especificação" não é comumente utilizado no contexto de POO e pode levar a uma interpretação equivocada.

O erro no enunciado pode estar na interpretação de que a subclasse não altera a superclasse original, o que é verdade; entretanto, pode modificar o comportamento dos métodos herdados. A superclasse permanece a mesma e pode ser utilizada por outras subclasses sem alterações. O equívoco aparente é a sugestão de que a subclasse não pode modificar o comportamento (métodos) herdados, algo que é uma das características fundamentais da herança em POO.

Portanto, a proposição está Errada porque sugere que os componentes herdados da superclasse não podem ser alterados pela subclasse, quando na verdade a herança permite essa modificação de comportamentos através da sobrescrita de métodos, mantendo a integridade da superclasse.

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

Há várias formas de relacionamentos em herança:

 

Extensão: subclasse estende a superclasse, acrescentando novos membros (atributos e/ou métodos). A superclasse permanece inalterada, motivo pelo qual este tipo de relacionamento é normalmente referenciado como herança estrita.

 

Especificação: a superclasse especifica o que uma subclasse deve oferecer, mas não implementa nenhuma funcionalidade. Diz-se que apenas a interface (conjunto de especificação dos métodos públicos) da superclasse é herdada pela subclasse.

 

Combinação de extensão e especificação: a subclasse herda a interface e uma implementação padrão de (pelo menos alguns de) métodos da superclasse. A subclasse pode então redefinir métodos para especializar o comportamento em relação ao que é oferecido pela superclasse, ou ter que oferecer alguma implementação para métodos que a superclasse tenha declarado mas não implementado. Normalmente, este tipo de relacionamento é denominado herança polimórfica.

Fonte??

Acho que está errada, pois pode alterar a constituição. Não somente acrescentando coisas novas. Os métodos podem ser sobrescritos, por exemplo.

Fonte do comentário do Gustavo Flores: http://www.dca.fee.unicamp.br/cursos/PooJava/heranca/formas.html

A superclasse especifica o que uma subclasse deve oferecer, mas não implementa nenhuma funcionalidade. Diz-se que apenas a interface (conjunto de especificação dos métodos públicos) da superclasse é herdada pela subclasse.

Fonte do comentário do Gustavo Flores: http://www.dca.fee.unicamp.br/cursos/PooJava/heranca/formas.html

Clique para visualizar este comentário

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