A herança é um princípio próprio à programação orientada a objetos (POO) que permite criar uma nova classe a partir de uma já existente. Herança, também chamada de subclasses, provém da subclasse, da classe recém-criada que contém atributos e métodos da qual deriva. A principal vantagem da herança é a capacidade para definir novos atributos e métodos para a subclasse, que se somam aos atributos e métodos herdados.
A herança, então, permite criar uma estrutura hierárquica de classes cada vez mais especializada. A grande vantagem disso é não ter que partir do zero para especializar uma classe existente. Desta maneira, é possível comprar bibliotecas de classes, que constituem um banco, que pode se especializar à vontade (a empresa que vende essas classes tende a proteger os dados membro graças à encapsulação).
É possível representá-la sob a forma de hierarquia de classes, às vezes chamada de arborescência de classes, a relação de parentesco que existe entre as diversas classes. A arborescência começa por uma classe geral chamada superclasse (às vezes, classe básica, classe parente, classe antepassado, classe mãe ou classe pai). Em seguida, as classes derivadas (classe filha ou subclasse) tornam-se cada vez mais especializadas. Assim, geralmente, podemos expressar a relação que vincula uma classe filha a sua mãe pela frase é um (do inglês ‘is a’):
Certas linguagens orientadas a objeto, como a C++, permitem a herança múltipla, o que significa que elas oferecem a uma classe a possibilidade de obter dados de duas ou mais superclasses. Assim sendo, a técnica permite reunir, numa única classe, atributos e métodos de várias classes:
Foto: © kubko - 123RF.com