Herança em Java

Depois de termos visto os conceitos sobre herança, vamos finalmente ver a herança nas linhas de código Java. Como mencionamos anteriormente, em Java a palavra-chave extends é usada para indicar que uma dada classe herda de outra. A Listagem 1 apresenta exemplos de código em Java, indicando que Terrestre herda de Transporte e que Automóvel herda de Terrestre.

Listagem 1 - Exemplo de Herança em Java

Vale lembrar que quando uma classe herda de outra, todos os atributos (e métodos) da outra classe passam a fazer parte dessa mesma. Isso significa que, para o exemplo acima, o programador (ou outro objeto) pode solicitar à classe Automóvel os atributos de Transporte e Terrestre. Os atributos de Terrestre são acessíveis na classe Automóvel porque a segunda herda da primeira. E os atributos de Transporte são acessíveis a Automóvel devido ao fato de Terrestre herdar de Transporte.

Uma dúvida que pode estar surgindo é: como os atributos são acessíveis se eles estão declarados como private?

Respondendo: considere que para os códigos das classes da Listagem 1 foram declarados os métodos get e set para cada um dos atributos. Através desses métodos, que são também herdados pelas subclasses, podemos acessar facilmente qualquer um dos atributos herdados. Eles só não foram escritos para ressaltarmos a construção extends de Java e definir a herança entre classes. Veremos códigos mais completos na próxima aula.

Anote as Dicas!

  1. A classe Object: todas as classes em Java descendem de uma classe, chamada Object, mesmo que a declaração extendsObject seja omitida, a classe Object é considerada a classe raiz da hierarquia de todas as classes Java, sendo, portanto, ancestral de todas as classes da linguagem.
  2. Quando uma classe usa a relação de herança, podemos dizer que essa classe possui um relacionamento chamado “É um” com a classe da qual ela herda. Tal relação também indica que uma classe é do mesmo tipo que outra. Assim, nos exemplos anteriores, podemos dizer que Automóvel “é um” transporte Terrestre, assim como que Terrestre “é um” (ou tipo de) Transporte.

Versão 5.3 - Todos os Direitos reservados