Juliana Jenny Kolb
Home > Engenharia de Software > Sumário > Engenharia de Requisitos > UML > Orientação a Objetos (OO)
Herança
O conceito de Herança trabalha com os conceitos de superclasses e sub-classes. Uma superclasse (classe-mãe) é uma classe que possui classes derivadas a partir dela, chamadas sub-classes (classes-filhas). As sub-classes, ao serem derivadas a partir de uma superclasse, herdam suas características, ou seja, seus atributos e métodos.
O conceito de herança permite o reaproveitamento de atributos é métodos, ao declararmos uma classe com atributos e métodos específicos e após isso derivamos uma sub-classe a partir da classe já criada, não precisamos redeclarar os atributos e métodos já definidos, a sub-classe os herda automaticamente, permitindo uma reutilização do código já pronto. Assim só precisamos nos preocupar em declarar os atributos ou métodos exclusivos da sub-classe.
A herança também permite trabalhar com especializações. Podemos criar classes gerais, com características compartilhadas por muitas classes, mas que possuem pequenas diferenças entre si. A figura 1 apresenta um exemplo de herança.
Figura 1: Exemplo de herança.
Fonte: GUEDES (2006).
Herança Múltipla
A Herança Múltipla ocorre quando uma sub-classe herda características de duas ou mais superclasses. Nesse caso uma sub-classe pode herdar atributos e métodos de diversas superclasses. A figura 2 ilustra um exemplo de herança múltipla.
Figura 2: Exemplo de herança múltipla.
Fonte: GUEDES (2006).
Nota:
Tanto polimorfismo quanto herança são referências no ramo de reutilização de código, pois trabalham em conjunto. Existem dois tipos de polimorfismo que são conhecidos como sobrecarga (overload) e sobreposição (override).
A sobrecarga (overload) consiste em permitir, dentro da mesma classe, mais de um método com o mesmo nome. Entretanto, eles necessariamente devem possuir argumentos diferentes para funcionar.
Na Sobreposição de métodos (override) ou (sobrescrita), podemos reescrever nas classes filhas métodos criados inicialmente na classe pai, os métodos que serão sobrepostos, diferentemente dos sobrecarregados, devem possuir o mesmo nome, tipo de retorno e quantidade de parâmetros do método inicial, porém o mesmo será implementado com especificações da classe atual, podendo adicionar um algo a mais ou não.
Referência Bibliográfica
GUEDES, Gilleanes T. A. UML: Uma abordagem prática. São Paulo: Novatec, 2006.