JAVA

3022 palavras 13 páginas
9.2 - Classe abstrata
O que, exatamente, vem a ser a nossa classe Funcionario? Nossa empresa tem apenas Diretores, Gerentes, Secretárias, etc. Ela é uma classe que apenas idealiza um tipo, define apenas um rascunho.
Para o nosso sistema, é inadmissível que um objeto seja apenas do tipoFuncionario (pode existir um sistema em que faça sentido ter objetos do tipoFuncionario ou apenas Pessoa, mas, no nosso caso, não).
Usamos a palavra chave abstract para impedir que ela possa ser instanciada. Esse é o efeito direto de se usar o modificador abstract na declaração de uma classe: abstract class Funcionario {

protected double salario;

public double getBonificacao() { return this.salario * 1.2; }

// outros atributos e métodos comuns a todos Funcionarios

}
E, no meio de um código:
Funcionario f = new Funcionario(); // não compila!!!

O código acima não compila. O problema é instanciar a classe - criar referência, você pode. Se ela não pode ser instanciada, para que serve? Serve para o polimorfismo e herança dos atributos e métodos, que são recursos muito poderosos, como já vimos.
Vamos então herdar dessa classe, reescrevendo o método getBonificacao: class Gerente extends Funcionario {

public double getBonificacao() { return this.salario * 1.4 + 1000; }
}

Mas qual é a real vantagem de uma classe abstrata? Poderíamos ter feito isto com uma herança comum. Por enquanto, a única diferença é que não podemos instanciar um objeto do tipo Funcionario, que já é de grande valia, dando mais consistência ao sistema.
Fique claro que a nossa decisão de transformar Funcionario em uma classe abstrata dependeu do nosso domínio. Pode ser que, em um sistema com classes similares, faça sentido que uma classe análoga a Funcionario seja concreta.
Capítulo 10
Interfaces
"Uma imagem vale mil palavras. Uma interface vale mil imagens."
10.1 - Aumentando nosso exemplo
Imagine que um Sistema de Controle do Banco pode ser acessado, além de pelos

Relacionados

  • java
    294 palavras | 2 páginas
  • java
    868 palavras | 4 páginas
  • java
    6870 palavras | 28 páginas
  • Java
    1657 palavras | 7 páginas
  • java
    1176 palavras | 5 páginas
  • Java
    6757 palavras | 28 páginas
  • Java
    1044 palavras | 5 páginas
  • Java
    1411 palavras | 6 páginas
  • JAVA
    1268 palavras | 6 páginas
  • java
    2412 palavras | 10 páginas