Carregar apresentação
A apresentação está carregando. Por favor, espere
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
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...
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.