Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Herança e polimorfismo<br />
A relação entre as classes de um sistema orientado a objetos.<br />
O conceito de classificação<br />
Quando implementamos uma classe, estamos modelando alguma coisa, um empregado, um automóvel,<br />
um animal, etc. Muitas vezes, porém, precisamos refinar esse modelo para representar subgrupos de<br />
objetos dentro dessa classe.<br />
Por exemplo, suponha que você crie uma classe para representar os funcionários da FIC:<br />
public class Funcionario<br />
{<br />
private String nome;<br />
private String funcao;<br />
private Date dataDeAdmissao;<br />
private double salario;<br />
}<br />
public void decimoTerceiro(Date dataAtual)<br />
{<br />
// cálculo do décimo terceiro salário<br />
}<br />
public void alterarSalario(double novoSalario)<br />
{<br />
salário = novoSalario;<br />
}<br />
// restante do corpo da classe<br />
11<br />
Agora imagine que você deseja representar os seguintes tipos de funcionários da FIC: um coordenador<br />
de curso, um professor e um auxiliar de limpeza. Note que essas três classes de funcionários possuem<br />
muitos membros variáveis em comum, como data de admissão, salário, função, nome, etc. E possuem<br />
também alguns métodos em comum, como o cálculo do décimo terceiro, alteração de salário, etc. Porém,<br />
cada uma dessas classes possui um conjunto de métodos exclusivos, ou seja, que só se aplicam a seus<br />
objetos e não a objetos de outras classes. Por exemplo: um auxiliar de limpeza tem o método public<br />
void limpar();, o coordenador tem o método public void criarTurma(Turma aula); e o<br />
professor tem o método public void lecionar();. Observe também que um coordenador é por sua<br />
vez um professor, e portanto possui todos os métodos de um professor e mais alguns exclusivos da<br />
classe Coordenador.