artigos de programação
Como o próprio nome sugere, na orientação a objetos o termo herança se refere a algo herdado. Em Java, a herança ocorre quando uma classe passa a herdar características
(atributos e métodos) definidas em outra classe especificada como sua classe pai ou superclasse. A técnica da herança possibilita o compartilhamento ou reaproveitamento de recursos definidos anteriormente em outra classe. A classe fornecedora dos recursos recebe o nome de superclasse e a receptora dos recursos, de subclasse.
Outro termo envolvido com herança é a especialização. Mesmo quando herda características de outra, a classe pode implementar partes específicas não contempladas na parte original (superclasse), tornando-se especializada em algum ponto.
A técnica de herança é extremamente utilizada em Java. Praticamente todas as aplicações com janelas, applets e servlets (web) se beneficiam deste recurso.
Para dar maior clareza aos conceitos podemos observar os exemplos abaixo:
Figura 1 - Classe Pessoa
A classe Pessoa possui um atributo (nome) e dois métodos (setNome e getNome) para manipular seu conteúdo. Essa classe pode ser especializada uma vez que existem pessoas
Físicas e Jurídicas que precisam ter informações diferentes. Poderiamos escrever mais duas classes repetindo as informações de Pessoa, ou ainda colocar as informações de CPF e CNPJ em Pessoa para usar quando for de um ou outro tipo. Ao invés disso vamos usar o recurso da herança. Observe as classes abaixo, ambas estendem a funcionalidade da classe Pessoa adicionando um atributo e dois métodos. O mecanismo de herança é realizado pela inserção da palavra extends na declaração do nome da classe, seguindo pela classe a partir da qual a herança será recebida.
Figura 3 - Classe PessoaJuridica
Figura 2 - Classe PessoaFisica
A classe PessoaFisica estende (por meio da palavra extends) a funcionalidade da classe
Pessoa, herdando todo seu estado e comportamento e acrescentando novas funcionalidades: