Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetos
Aula 4
Curso: Análise e Desenvolvimento de Sistemas
Professor: Rafael Wendel Pinheiro
• Roteiro da Aula
– Herança
– Overloading de métodos
– Construtores
– Exercícios
2
Herança
3
• Herança
– Em Orientação à Objetos, Herança é a
capacidade de uma classe herdar as
propriedades e comportamentos públicos ou
protegidos de uma outra classe.
– Esse processo visa evitar a reescrita de
códigos.
4
• Herança
Super Classe
Podemos falar que Sub Classe herda
propriedades e comportamentos de
Super Classe.
5
• Herança
– Contextualizando...
– Imagine que um software necessita salvar
seu quadro de funcionários. Para isso
teremos a classe Funcionário.
6
• Herança
– Dentro do quadro de funcionários, existem
aqueles que são gerentes. Para os gerentes,
é necessário um atributo “bonus” (exclusivo
de todos os gerentes).
– Como implementar então?
7
• Herança
Essa não seria uma boa prática, pois nem todos os funcionários
possuem bônus. Somente os gerentes possuem.
8
• Herança
10
• Herança
11
• Herança
– Implementação
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
}
13
Sobrescrita (Overloading) de
métodos
14
• Overloading de métodos
– Para o nosso exemplo Gerente ->
Funcionário, imagine que há um método
responsável por calcular e imprimir o salário
total de um funcionário se baseando nos
atributos salario e no número de horas
extras.
15
• Overloading de métodos
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
16
• Overloading de métodos
– O método calcularSalarioTotal() será
herdado na classe Gerente. Logo, toda
instância de Gerente também poderá
executá-lo.
– Porém, o salário dos Gerentes têm uma
particularidade, já que eles possuem um
bônus no salário por exercerem a gerência.
17
• Overloading de métodos
– Nesse caso, poderíamos implementar o
método calcularSalarioTotalGerente(), mas
isso não impossibilitaria as instâncias de
ainda executarem o método
calcularSalarioTotal(), que fora herdado da
classe Funcionário.
– Nesse caso, podemos sobrescrever o
método calcularSalarioTotal() na classe
Gerente.
18
• Overloading de métodos
public class Gerente extends Funcionario{
public double bonus;
21
• Construtores
– Os construtores (erroneamente chamados
de métodos construtores) é um bloco com o
mesmo nome da classe que é
automaticamente executado sempre que
uma nova instância da classe é criada
(através do comando new).
22
• Construtores
– Por exemplo, quando vamos criar um
funcionário (instância da classe Funcionario),
não faz sentido que esse não tenha nome.
Então, podemos “forçar” que toda vez que um
Funcionário for criado, ele automaticamente
precisa receber um nome (que será
armazenado no atributo nome).
23
• Construtores
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
25
• Construtores
– A implementação de um construtor em uma
classe mãe obriga que todas as suas classes
filhas também possuam um construtor.
26
• Construtores
public class Gerente extends Funcionario{
public double bonus;
28