modelo de herança
Herança é outro tipo de relacionamento que pode existir entre classes. Pode-se empregar o relacionamento de Herança entre classes quando uma classe for “um tipo de” outra classe. Costuma-se interpretar o relacionamento de herança entre duas classes como: “é um tipo de” ou “é um”. Exemplo: Professor “é um tipo de” Empregado. Professor “é um” Empregado.
No relacionamento de Herança chama-se “superclasse” a classe genérica e “subclasse” a classe especializada. A maior característica desse tipo de relacionamento é como o próprio nome diz, a herança de métodos e atributos da superclasse pela subclasse. Portanto, no exemplo acima, a subclasse Professor herda todos os atributos e métodos da superclasse Empregado. Somente os métodos construtores não são herdados. Pode-se dizer que a subclasse Professor estende a superclasse Empregado.
1.1 - Objetivo da Herança O objetivo principal da herança é a reutilização de software, já que novas classes são criadas a partir de outras já existentes, herdando seus atributos e métodos. A classe que herda ou estende outra classe tem a capacidade de ter novos atributos e métodos de acordo com sua característica e também pode modificar, sobrescrever (override) os métodos herdados de acordo com sua necessidade. A reutilização de software economiza tempo de desenvolvimento de programas.
1.2 - Outras Características Podem existir vários níveis de relacionamento de herança entre classes, por exemplo, uma classe Professor herda de Empregado que herda de Pessoa. Chama-se superclasse direta de uma subclasse aquela que ela herda explicitamente e superclasse indireta é aquela herdada de dois ou mais níveis acima da hierarquia. No caso, Empregado é superclasse direta de Professor. Toda a classe criada herda ou estende por “default” a classe Object. Por exemplo, Empregado herda ou estende por “default” a classe Object.
Ao se instanciar um objeto da subclasse, pode-se “enxergar” ou