A Herança e o Protected

Olá, aqui estamos novamente. Descobrimos na aula passada que objetos (como eu) também têm ancestrais e descendentes!!! Mas alguns pontos importantes ainda precisam ser abordados sobre herança. Por isso, hoje iremos continuar falando sobre esse assunto.

Na Aula 05 (Encapsulamento), você viu os tipos de modificadores de acesso: public, private e protected. Esse último, ficamos de explicar melhor durante as aulas sobre herança.

Naquela aula, nós mencionamos que o modificador protected funciona como o private, exceto que as classes filhas também terão acesso ao atributo ou método declarado como protected. Isso significa que apenas as classes descendentes de uma determinada classe poderão ter acesso aos atributos e métodos declarados com esse modificador.

Veja o exemplo abaixo:

Esquema de herança.   <span class='strong'>Listagem 1</span> -  Herança em Java proteced e private

A Figura 1 e a Listagem 1 apresentam o exemplo da aula anterior com algumas pequenas modificações.

As classes Transporte e Terrestre tiveram seus atributos modificados para serem protected, isso significa que apenas classes que pertencem à hierarquia de herança podem acessar diretamente esses atributos. Em outras palavras, apenas subclasses (ou classes descendentes) de Transporte e Terrestre terão acesso aos seus atributos protected.

A Listagem 2 abaixo mostra a definição de mais um método na classe Automóvel, o qual faz acesso aos atributos protected, capacidade e numRodas, definidos nas classes ancestrais Transporte e Terrestre, respectivamente. Observe que tais atributos são acessados e usados livremente no método imprimeDadosAutomovel(). Isso só é possível porque agora eles foram declarados como protected.

Listagem 2 - Acesso a atributos protected

A Listagem 3 mostra uma tentativa frustrada de acesso aos atributos capacidade e numRodas herdados pela classe Automóvel, dentro de um método main(). Nesse caso, não é possível acessar tais atributos, porque a classe Principal não herda da classe Terrestre e, portanto, não tem direito a acessar os atributos protected.

Listagem 3 - Acesso a atributos protected

Versão 5.3 - Todos os Direitos reservados