A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Jean Carlo mendes

Apresentações semelhantes


Apresentação em tema: "Jean Carlo mendes"— Transcrição da apresentação:

1 Jean Carlo mendes www.codifique.net poo@codifique.net poo@codifique.net Jean.mendes@gmail.com

2  Uma classe Abstrata é uma classe que serve apenas de “modelo” para uma classe Concreta  Classes Abstratas não podem ser instanciadas (operador new)

3  Classes Abstratas podem ser herdadas  Casses Abstratas podem conter ou não métodos Abstratos  Os métodos definidos como Abstratos em uma classe Abstrata devem ser obrigatoriamente implementados na classe concreta que a herda

4

5  Características do domínio do problema  A empresa somente possui funcionários do tipo Gerente, Presidente e Secretária  A forma de se calcular a bonificação de cada tipo de funcionário é distinta, sendo:  Salário + 5% para secretária  Salário + 10% para gerente  Salário + 20% para presidente

6  Faz sentido eu ter uma referência (instância) de um objeto funcionário?  Faz sentido eu escrever o funcionamento do método getBonificacao() na classe mãe?  O que aconteceria se eu deixasse o método “vazio” na classe mãe e me “esquecesse” de implementá-lo na classe filha?

7  Para evitar este tipo de problema o que fazemos?  Usamos classes e métodos Abstratos  Tornando a classe Abstrata eu impeço que seja instanciado um Funcionário que não seja dos três tipos existentes  Tornando o método getBonificacao() Abstrato eu OBRIGO as classes filhas a fornecerem uma implementação para ele

8 abstract class Funcionario { public String cpf; public String nome; public Date dataNascimento; public string setor; public double salario; abstract double getBonificacao(); }

9  Implemente as classes Presidente, Gerente e Secretaria herdando de funcionário  Não implemente o método getBonificacao() em uma das classes filhas e tente compilar...


Carregar ppt "Jean Carlo mendes"

Apresentações semelhantes


Anúncios Google