Funcionamento da Herança

Você viu os conceitos sobre herança, mas é importante também que possamos entender o que acontece com uma classe que utiliza a herança durante sua execução. Para melhor entendermos o funcionamento da herança durante a execução do programa, vejamos a Figura 4.

Herança em ação

Sabemos que quando criamos um objeto, temos uma instância concreta da classe a qual esse objeto representa. Na Figura 3, esse objeto é representado pelo Objeto1. Agora, vamos supor que o Objeto2 quer saber o valor do atributoX desse objeto, através do envio de uma mensagem. Para obter o valor do atributo X, o Objeto1 sai consultando sua árvore hierárquica de classes até encontrar o atributo solicitado pelo Objeto2. No caso da Figura 4, o objeto consulta a classe da qual ele foi instanciado (ClasseC), não encontrando, consulta a classe mãe dessa mesma (ClasseB), e assim sucessivamente até encontrar o atributo e o valor. Vale ressaltar que o Objeto1 não percorre toda a árvore hierárquica, percorre o caminho da classe filha em direção à classe mãe.

Outro ponto importante é que o objeto não acumula todos os atributos das classes que fazem parte da hierarquia de herança, mas apenas os atributos das classes ancestrais a ele. O usuário (programador ou outros objetos, tal como o Objeto 2 na Figura 4) de um determinado objeto não sabe (nem precisa saber) se o atributo é dele ou se o atributo é herdado de uma outra classe ancestral dele.

Versão 5.3 - Todos os Direitos reservados