segunda-feira, 30 de julho de 2012

Herança, Reescrita e Polimorfismo

Aula 19 - 04.07.2012 e Aula 20 - 05.07.2012

  Nas duas últimas aulas antes das férias, aprendemos pra que serve, e como usar a Herança, a Reescrita e o Polimorfismo. Antes, usando o exemplo de um Banco, em que temos uma classe chamada Funcionarios, e desejamos criar uma classe Gerente, deveriamos declarar às mesmas variáveis para os dois, (como por exemplo, String nome, double salario, String dataDeEntrada, entre outros),  e ainda adicionar o que seria o diferencial do Gerente (int senha, int numFuncionarios etc...). Para evitar essa cópia de atributos, e consequentemente, cópia de métodos, utilizamos a Herança, na qual é só adicionarmos, na classe que receberá essa herança, a palavra "extends", após o nome da classe, igual ao exemplo a seguir:

class Funcionario {
     private String nome;
     private double salario;

     protected void setNome (String nome) {
           this.nome = nome;
     }
     protected void setSalario (double sal) {
           this.salario = sal;
     }
      protected String getNome () {
           return this.nome;
     }
      protected double getSalario () {
           return this.salario;
     }
}

class Gerente extends Funcionario {
     private int senha;

     protected void setSenha (int senha) {
          this.senha = senha;
     }
      protected int getSenha () {
           return this.senha;
     }
}

  Além de evitarmos a cópia desnecessária de atributos e métodos, assim que resolvermos mudar um método da classe Funcionario, essa mudança não será esqueçida na classe Gerente, pois ela está Herdando. Agora chamamos a classe Funcionario de classe Mãe, e a Gerente, ou qualquer outra que recebera sua herança, de classe Filha.
  Aprendi também que, caso sejá necessário que a classe filha possua um método igual ao da classe mãe, porém com algma alteração, basta usarmos a Reescrita, que é copiar o método igual ao da classe mãe, e realizarmos às mudanças. Essa mudança será notada, quando um objeto dessa classe for invocado na classe que possua o main.
  Também sei agora o que é o Polimorfismo, que é a capacidade de um objeto ser referenciado de várias formas. Usando o exemplo anterior, podemos dizer que um Gerente é um Funcionario.

  Após entender todos esses conceitos, colocamos a mão na massa, ou no teclato, enfim, e fomos aos exercícios, para uma melhor fixação do conteúdo, e após isso tudo...

...Férias =)...
...e um trabalinho.

Nenhum comentário:

Postar um comentário