23
Aula 05 Herança Professor: José Alexandre Macedo versão: 1.0

Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Embed Size (px)

Citation preview

Page 1: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Aula 05

Herança

Professor: José Alexandre Macedo

versão: 1.0

Page 2: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Conceitos Básicos

•Herança é um dos princípios da

Orientação a Objetos

•Permite a criação de novas classes a partir

de outras previamente criadas

Page 3: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Conceitos Básicos

•Essas novas classes são chamadas de subclasses,

ou classes filhas, ou classes derivadas

•As classes já existentes, que deram origem às

subclasses, são chamadas de superclasses, ou

classes mãe, ou classe base

Page 4: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Conceitos Básicos

•Uma subclasse herda métodos e atributos

de sua superclasse

Page 5: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Conceitos Básicos

•Uma subclasse herda métodos e atributos

de sua superclasse

Qual a vantagem disso?

Page 6: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Conceitos Básicos

•Uma subclasse herda métodos e atributos

de sua superclasse

Qual a vantagem disso?

REUSO!

Page 7: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Exemplo...

Page 8: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Será que precisamos

mesmo de outra classe?

Page 9: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Para herdar uma classe em Java

utilizamos a palavra chave

extends

Page 10: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Para herdar uma classe utilizamos a palavra chave

extends

Page 11: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Gerente é um funcionário

Page 12: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Como permitir que apenas a

classe filha acesse os atributos

da classe mãe?

Page 13: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Como permitir que apenas a

classe filha acesse os atributos

da classe mãe?

Usando o modificador de acesso

protected!

Page 14: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Código repetido?

Usando o modificador de acesso

protected!

Page 15: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Reescrita de Método

Uma classe filha pode necessitar

de uma implementação diferente

para um método escrito na

classe mãe

Page 16: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Reescrita de Método

Exemplo: a bonificação dos

funcionários é 10% do valor

do salário e dos gerentes é 15%

Page 17: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Reescrita de Método

Exemplo: a bonificação dos

funcionários é 10% do valor

do salário e dos gerentes é 15%

Page 18: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Reescrita de Método

Exemplo: a bonificação dos

funcionários é 10% do valor

do salário e dos gerentes é 15%

Page 19: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Invocando o Método Reescrito

Imagine que você precise acessar

o método da classe mãe que

você esta reescrevendo...

Como fazer isso?

Page 20: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Invocando o Método Reescrito

Como fazer isso?

Page 21: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Invocando o Método Reescrito

Como fazer isso?

Mudanças no cálculo de bonificação

do funcionário causaria a reescrita aqui!

Page 22: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Invocando o Método Reescrito

Como fazer isso?

A solução: o uso da palavra chave

super

Page 23: Herança · Para herdar uma classe em Java utilizamos a palavra chave extends. Código repetido? Para herdar uma classe utilizamos a palavra chave extends. Código repetido? Gerente

Exercícios...