Top Banner
Herança Arthur E. de O. Carosia
30

Java: Heranca e polimorfismo

Jan 09, 2017

Download

Technology

Arthur Emanuel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java: Heranca e polimorfismo

HerançaArthur E. de O. Carosia

Page 2: Java: Heranca e polimorfismo

Repetição de Código

Page 3: Java: Heranca e polimorfismo

Repetição de Código

Código Repetido

Código Novo

Page 4: Java: Heranca e polimorfismo

Poderíamos ter deixado a classe Funcionario mais genérica, ◦ mantendo nela senha de acesso, e o número de

funcionários gerenciados. ◦ Caso o funcionário não fosse um gerente,

deixaríamos estes atributos vazios. Muito atributos opcionais

◦ Muito espaço vazio Métodos

◦ Gerente tem o método autentica, que não faz sentido existir em um funcionário que não é gerente.

Problemas

Page 5: Java: Heranca e polimorfismo

Se tivéssemos um outro tipo de funcionário que tem características diferentes do funcionário comum, precisaríamos criar uma outra classe e copiar o código novamente

Se um dia precisarmos adicionar uma nova informação para todos os funcionários, precisaremos passar por todas as classes de funcionário e adicionar esse atributo.

Problemas

Page 6: Java: Heranca e polimorfismo

Centralizar as informações de Funcionário

Em Java, de relacionarmos uma classe de tal maneira que uma delas herda tudo que a outra tem.

No nosso caso, gostaríamos de fazer com que o Gerente tivesse tudo que umFuncionario tem, gostaríamos que ela fosse uma extensão de Funcionario. 

Uso do termo extends

Solução

Page 7: Java: Heranca e polimorfismo

O gerente “é um” funcionário

Solução

Page 8: Java: Heranca e polimorfismo

 A classe Gerente herda todos os atributos e métodos da classe mãe, no nosso caso, a Funcionario.

Solução

Page 9: Java: Heranca e polimorfismo

Adaptar ou alterar métodos de classes existentes, bem como também adicionar métodos ou atributos, com o objetivo de adaptar as classes para novas situações

A subclasse herda atributos e métodos da superclasse.

Herança

Page 10: Java: Heranca e polimorfismo

Super e Sub classe◦ Funcionario é a superclasse de Gerente◦ Gerente é a subclasse de Funcionario.

Todo Gerente é um Funcionário.

Herança

é-um GeneralizaçãoEspecialização

Page 11: Java: Heranca e polimorfismo

Public: ◦ qualquer classe pode alterar os atributos dos

objetos deste tipo. Private:

◦ Somente pode ser acessado de dentro da classe Protected

◦ Entre o private e o public◦ só pode ser acessado (visível) pela própria classe,

por suas subclasses e classes do mesmo pacote

Acessar Atributos em SubClasses

Page 12: Java: Heranca e polimorfismo

Herança

Page 13: Java: Heranca e polimorfismo

Métodos herdados podem ser reescritos nas subclasses

Ao herdar um método, podemos alterar seu comportamento.

Reescrever (@override) o método:

Reescrita de Método

Page 14: Java: Heranca e polimorfismo

Métodos (ou atributos) da superclasse podem ser invocados com o uso da palavra chave super

Invocando métodos da Superclasse

Page 15: Java: Heranca e polimorfismo

Construtores da superclasse também podem ser invocados

Invocando métodos da Superclasse

Page 16: Java: Heranca e polimorfismo

Construtores da superclasse também podem ser invocados

Invocando métodos da Superclasse

Page 17: Java: Heranca e polimorfismo

A chamada a super deve ser a primeira instrução do construtor da subclasse

Se não houver a chamada a super, então o construtor padrão (sem argumentos) da superclasse é chamado

Se a superclasse não tiver construtor padrão, ocorrerá um erro de compilação

Invocando métodos da Superclasse

Page 18: Java: Heranca e polimorfismo

Lista de Exercícios no Moodle

Exercícios

Page 19: Java: Heranca e polimorfismo

Na herança, todo Gerente é um Funcionario Podemos nos referir a um Gerente como

sendo um Funcionario. Se alguém precisa falar com

um Funcionario do banco, pode falar com um Gerente.

Polimorfismo

Page 20: Java: Heranca e polimorfismo

Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas.

Polimorfismo

Page 21: Java: Heranca e polimorfismo

Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas.

Polimorfismo

 No Java, a invocação de método sempre vai ser decidida em tempo de execução.

O método executado é o do Gerente.

Page 22: Java: Heranca e polimorfismo

Polimorfismo - Exemplo

Page 23: Java: Heranca e polimorfismo

Polimorfismo - Exemplo

Page 24: Java: Heranca e polimorfismo

Sistema de Faculdade que controle despesas com funcionários e professores

Polimorfismo – Exemplo 2

Page 25: Java: Heranca e polimorfismo

Funcionário

Polimorfismo

Page 26: Java: Heranca e polimorfismo

O gasto que temos com o professor não é apenas seu salário. Temos de somar um bônus de 10 reais por hora/aula.

Polimorfismo

Page 27: Java: Heranca e polimorfismo

Gerador de Relatórios◦ Podemos passar para nossa classe

qualquer EmpregadoDaFaculdade. ◦ Vai funcionar tanto para professor, quanto para

funcionário comum.

Polimorfismo

Page 28: Java: Heranca e polimorfismo

Benefício:◦ Se desejarmos adicionar uma nova classe que

estende EmpregadoDaFaculdade, não é necessário alterar a classe Relatório.

Polimorfismo

Page 29: Java: Heranca e polimorfismo

Moodle

Exercício Futebol de RuaGrupos de 2 Pessoas

Page 30: Java: Heranca e polimorfismo

HerançaArthur E. de O. Carosia