Você está na página 1de 14

Herança

 Herança é um princípio de orientação a objetos, que nós permite que as classes


compartilhe seus métodos e atributos com outra classe.
 Costumamos dizer que existem a classe pai e suas classes filhas, pois as classes filhas
herdam os atributos e métodos da classe pai.
 Com a utilização de herança conseguimos ter um grande reaproveitamento de código,
pois aproveitamos a estrutura de uma classe em vez de construirmos outra do zero.
Herança

Isso é uma representação


CLASSE PAI diagramada de uma classe
filha que herda os atributos é
métodos de uma classe pai.

CLASSE FILHA
Herança

 Vamos a um exemplo prático, criaremos uma classe chamada funcionário com os


seguintes atributos e métodos .

Funcionario
Nome :
Cpf :
Salario:

calculaComissao();
Herança

Código da classe
funcionário
Herança

Código da classe
funcionário
Herança

Agora que já temos nossa classe Funcionário criada, vamos supor que surgiu a necessidade
de se criar uma classe gerente, se paramos para pensar vamos ver que o gerente é um
funcionário, porém com algumas diferenças, vamos ver o diagrama de classe dessas duas
classes.
Herança

 Se comparamos as duas classes podemos visualizar que a classe gerente e a


funcionário possui QUASE todas os mesmos atributos e métodos com exceção do
atributo senha e o método autentica que apenas gerentes podem ter .

Funcionario NomeGerente
:
nome : nome :
cpf : cpf:
Salario: salario:
senha:

calculaComissao(); autentica();
calculaComissao();
Herança

Visto a semelhança entre as duas classes, vamos utilizar a herança para que a classe
gerente herde todos os atributos e métodos da classe funcionário e acrescentaremos nele o
atributo senha e o método autentica que é exclusivo da classe gerente
Herança

Código da
classe gerente
Através da palavra extends
na linha de criação da
classe estamos informando
que a classe Gerente está
herdando os atributos e os
métodos da classe
Funcionário.
Herança

Código Principal

No código podemos
verificar que estanciamos
dois objetos, um do tipo
funcionário e outro do tipo
Gerente, e graças a
herança conseguimos usar
todos métodos da classe
funcionário na classe
gerente.
Herança

Agora que já temos a nossa classe gerente herdando do funcionário, vamos supor que o
método calcula comissão precisar de um ajuste, já que o gerente terá que receber uma
comissão de 15 %, já o do funcionário comum é de 10 %.
Para conseguimos fazer esse ajuste teremos que usa o conceito de sobrescrita, onde vamos
herdar um método e sobrescreve-lo de acordo com a necessidade da classe
Herança

Código Gerente

O trecho de código ao
lado foi adicionado dentro
da classe gerente, ele
mostra a sobrescrita do
método calculaComissao,
que para o gerente ela
devolve 15 % de comissão
enquanto um funcionário
comum são apenas 10 %
Exercicios

 Crie uma classe "Veículo" que tenha as propriedades "marca", "modelo", "ano" e "cor". Em seguida,
crie duas subclasses chamadas "Carro" e "Moto", que herdam as propriedades da classe "Veículo". A
classe "Carro" deve ter a propriedade adicional "quantidade de portas", enquanto a classe "Moto"
deve ter a propriedade adicional "cilindrada".
 Em seguida, crie dois objetos, um do tipo "Carro" e outro do tipo "Moto", atribuindo valores às suas
propriedades. Por fim, exiba as informações de cada objeto utilizando um método. Certifique-se de
que a informação adicional de cada classe (quantidade de portas ou cilindrada) também esteja
incluída.
Exercicios
 Crie uma classe cliente com os seguintes atributos :
Nome
Idade
Endereco
Valor_pedido
Valor_promocional
E os métodos :
calculaDesconto() “cliente comum tem desconto de 10% porcento”

 Crie uma segunda classe chamada ClientePremium com os seguintes atributos:


Nome
Idade
Endereco
Valor_pedido
Valor_promocional
E os métodos:
calculaDesconto() “cliente premium tem desconto de 15% porcento”

Você também pode gostar