Na orientação a objetos, em uma relação de herança entre cla...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - todas as variáveis de instância e os métodos, entretanto, podem explicitamente sobrescrever alguns destes componentes.
Para resolver esta questão, é essencial compreender o conceito de herança na programação orientada a objetos. Herança é um dos pilares da orientação a objetos, permitindo que uma subclasse herde característica de uma superclasse, incluindo atributos (variáveis de instância) e métodos. Isso proporciona reusabilidade de código e facilitação na manutenção.
Em relação à alternativa correta (E), é importante entender que, na herança, a subclasse herda os atributos e métodos da superclasse, incluindo aqueles com visibilidade protected e default (se estiverem no mesmo pacote), além dos públicos. Métodos e atributos privados não são herdados pois são acessíveis apenas dentro da própria classe onde foram declarados. A subclasse tem a capacidade de sobrescrever, ou seja, definir sua própria implementação de métodos herdados (exceto métodos estáticos, que pertencem à classe e não ao objeto). Esse processo é também conhecido como overriding, permitindo que a subclasse especifique um comportamento específico para um método que já existe na superclasse.
Portanto, a alternativa (E) está correta pois reflete adequadamente o mecanismo de herança, incluindo a possibilidade de sobrescrita que está prevista no conceito de polimorfismo, outro pilar fundamental da orientação a objetos.
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
Baseando-se na linguagem Java, que também pode ser extendido em outras linguagens de programação orientadas a objeto (LPOO).
O correto seria incluir o trecho em vermelho:
e) todas as variáveis de instância e os métodos (não privados), entretanto, podem explicitamente sobrescrever alguns destes componentes.
Principais palavras chaves de encapsulamento:
Public - Pode ser acesso de qualquer outro arquivo .java
Protected - Pode ser acessado somente em classes .java que herdam da classe pai
Private - somente pode ser vistos dentro da classe .java
Os métodos privados só são vistos dentro da arquivo .java que são criados. Não podem ser vistos por outro arquivo .java. PODE ser que seja possível utilizando uma classe interna, isso eu não sei, mas seria uma viagem da questão. Até porque isso é uma particularidade do Java e não das LPOOs.
Se as variáveis de instância (que compõe o estado do objeto) ou algum método (determina o comportamento do objeto) for private (privado), não terá como ser herdado.
No livro de OCJP página 2 diz: "Uma subclasse que herda de uma superclasse recebe automaticamente as variáveis de instâncias acessíveis e os métodos definidos pela superclasse, mas é também livre para substituir métodos da superclasse para definir comportamentos mais específicos".
"Na orientação a objetos, ..."
Obrigado.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo