heranÇa e polimorfismo - prof. caetano livro autor / setautor / getautor herança em java •no...
TRANSCRIPT
![Page 1: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/1.jpg)
PROGRAMAÇÃO I
Prof. Dr. Daniel Caetano
2017 - 1
HERANÇA E POLIMORFISMO
![Page 2: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/2.jpg)
Objetivos
• Compreender o conceito de herança na orientação a objetos
• Implementar herança para reuso de código e facilitar manutenção
• Compreender o conceito de polimorfismo
• Implementar polimorfismo aproveitando o potencial das linguagens orientadas a objetos
![Page 3: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/3.jpg)
Material de Estudo
Material Acesso ao Material
Apresentação http://www.caetano.eng.br/ (Programação I – Aula 8)
Material Didático Programação I –Págs 77 a 91
![Page 4: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/4.jpg)
RETOMANDO:
RELACIONAMENTOS DE OBJETOS
![Page 5: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/5.jpg)
Relacionamento de Objetos
• Existem três tipos de relações
– Agregação: Carro → Lista de Carros em Oferta
– Composição: Motor → Carro (venda de veículos)
– Uso: Motorista → Carro
![Page 6: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/6.jpg)
HERANÇA
![Page 7: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/7.jpg)
O que é herança?
• Herança é uma das características mais úteis das classes... Mas o que é?
• O que é herdar?
• Receber algo que foi construído por outra pessoa
• Simplificadamente, em programação, herança é exatamente isso: receber algo que foi programado anteriormente
![Page 8: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/8.jpg)
Como é essa tal de herança?
• Ao longo das aulas criamos uma classe para representar um produto
• Imagine agora que tenhamos de criar, para um sistema de uma livraria, uma classe para representar um livro
• No contexto da livraria, o livro é um produto!
• Isso significa que ele vai ter um código de identificação, um nome e uma descrição, como o nosso produto
![Page 9: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/9.jpg)
Como é essa tal de herança?
• Temos duas alternativas:
1. Criar uma classe chamada Livro e reescrever todo o código que já havíamos colocando na classe Produto
2. Criar uma classe Livro e reaproveitar as funcionalidades que já estão disponíveis na classe Produto
• A opção dois pode ser feita justamente com a tal da herança
![Page 10: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/10.jpg)
Livro
autor / setAutor / getAutor
Herança em Java • No Java, a herança funciona assim:
1. Temos uma classe original, que chamamos de superclasse ou classe pai, da qual queremos herdar funcionalidades.
2. E vamos criar uma classe derivada, que chamamos de subclasse ou classe filha, que irá estender as funcionalidades da classe pai
Produto id / setId / getId
nome / setNome / getNome desc / setDesc / getDesc
![Page 11: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/11.jpg)
Livro
autor / setAutor / getAutor
Herança em Java • No Java, a herança funciona assim:
1. Temos uma classe original, que chamamos de superclasse ou classe pai, da qual queremos herdar funcionalidades.
2. E vamos criar uma classe derivada, que chamamos de subclasse ou classe filha, que irá extender as funcionalidades da classe pai
Produto id / setId / getId
nome / setNome / getNome desc / setDesc / getDesc
Apenas as características públicas e protegidas são
herdadas...!
Produto id / setId / getId
nome / setNome / getNome desc / setDesc / getDesc
![Page 12: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/12.jpg)
Livro
autor / setAutor / getAutor
Herança em Java • Observe que no processo de herança, todas
as características públicas são herdadas
• Assim, no exemplo, um Livro não deixa de ser, também, um Produto... Todo objeto do tipo Livro será, ao mesmo tempo, um objeto do tipo Produto
Produto setId / getId
setNome / getNome setDesc / getDesc
![Page 13: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/13.jpg)
Definindo uma Classe Filha • Para criar a nova classe, clique com o botão
direito no ícone do pacote que tem o nome do projeto (projeto2)
![Page 14: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/14.jpg)
Definindo uma Classe Filha • Agora selecione novo > classe java
![Page 15: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/15.jpg)
Definindo uma Classe Filha • Agora dê um nome à classe: Livro
![Page 16: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/16.jpg)
Definindo uma Classe Filha • Observe a classe na área de projeto
![Page 17: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/17.jpg)
Definindo uma Classe Filha • Clique 2 vezes nesse ícone para ver o código
![Page 18: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/18.jpg)
Informando quem é a Classe Pai • Indique que esta classe extends Produto :
![Page 19: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/19.jpg)
Informando quem é a Classe Pai • Indique que esta classe extends Produto :
Com isso já podemos usar a classe Livro como se fosse um Produto...
Mas queremos adicionar o atributo autor ao Livro, não é?
![Page 20: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/20.jpg)
Acrescentando atributos • Acrescente o atributo autor como String:
![Page 21: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/21.jpg)
Acrescentando atributos • Acrescente o atributo autor como String:
![Page 22: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/22.jpg)
Criando os getters e setters • Clique com o botão direito na área da classe
![Page 23: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/23.jpg)
Criando os getters e setters • Selecione Inserir código...
![Page 24: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/24.jpg)
Criando os getters e setters • Selecione a opção Getter e setter...
![Page 25: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/25.jpg)
Criando os getters e setters • E marque os atributos para os quais quer gerar
getters e setters
![Page 26: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/26.jpg)
Criando os getters e setters • O código será gerado automaticamente
![Page 27: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/27.jpg)
• Object é “pai” de todas as classes do Java
Hierarquia de Classes
Object
Produto String
Livro
![Page 28: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/28.jpg)
• Object é “pai” de todas as classes do Java
Hierarquia de Classes
Object
Produto String
Livro
Superclasse ou Classe Pai
Subclasse ou Classe Filha
![Page 29: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/29.jpg)
Herança de Métodos
• Para saber quais métodos estão disponíveis, basta digitar o nome da referência e adicionar um “.”:
![Page 30: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/30.jpg)
Herança de Métodos
• Para saber quais métodos estão disponíveis, basta digitar o nome da variável e adicionar um “.”:
Métodos em negrito estão
definidos nesta classe...
Métodos Herdados de
Object
![Page 31: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/31.jpg)
• Construa a Hierarquia ao lado:
– Produto: tem nome
– Livro: acrescenta autor
• Experimente
a) Criar um produto
b) Criar um livro
c) Criar livro e colocar em uma ref. de produto
d) Criar produto e colocar em uma ref. de livro
Exemplo/Exercício Object
Produto
Livro
![Page 32: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/32.jpg)
Para que misturar as bolas?
• Foi dito que pode-se guardar objetos de um tipo em uma referência de outro tipo
– Desde que o tipo da referência seja superclasse da classe do objeto...
• Mas... para que serve guardar objetos de tipos diferentes do da referência?
• Pedido → Lista de Produtos
– Lista guarda qualquer subclasse de “Produto”
• E uma lista para “Object”, guarda o quê?
![Page 33: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/33.jpg)
POLIMORFISMO E SOBRESCRITA DE MÉTODOS
![Page 34: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/34.jpg)
Polimorfismo
• Pessoa dirige Veículo
• Carro é Veículo
– Pessoa dirige Carro
• Caminhonete é Veículo
– Pessoa dirige Caminhonete
• Objeto pessoa não precisa “conhecer” o tipo específico do objeto
![Page 35: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/35.jpg)
Polimorfismo
• Projeto: Animais
• Classe Animal
![Page 36: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/36.jpg)
Polimorfismo
• Projeto: Animais
• Herança
– Classe Gato
– Classe Cachorro
• Sobrescrita!
![Page 37: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/37.jpg)
Sobrescrita (Override)
• Classe filha reimplementa...
– Um método da classe pai
– Em geral para executar algo diferente
![Page 38: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/38.jpg)
Sobrescrita (Override)
• Como saber quais métodos posso executar?
– Observe a estrutura:
• O tipo da referência
– Animal: anda / emiteSom
– Cachorro: anda / emiteSom
– Gato: anda / emiteSom / arranha
![Page 39: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/39.jpg)
Sobrescrita (Override)
• Lembre-se: para saber quais métodos estão disponíveis, basta digitar o nome da referência e adicionar um “.”:
![Page 40: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/40.jpg)
Sobrescrita (Override)
• Lembre-se: para saber quais métodos estão disponíveis, basta digitar o nome da variável e adicionar um “.”:
Métodos em negrito estão
definidos nesta classe...
Métodos Herdados
![Page 41: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/41.jpg)
Sobrescrita (Override)
• Como saber qual versão do método será executada?
– Observe a estrutura:
– Referência: Animal
• emiteSom()
• Para um objeto:
– Animal: emiteSom do Animal
– Cachorro: emiteSom do Cachorro
– Gato: emiteSom do Gato
![Page 42: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/42.jpg)
Sobrescrita (Override)
• E se um objeto Cachorro quiser executar um método do objeto pai que foi sobrescrito?
• Objeto Cachorro
– Acionar emiteSom do Animal
– Use a palavra super
– super.emiteSom();
![Page 43: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/43.jpg)
TIPOS DE HERANÇA
![Page 44: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/44.jpg)
Tipos de Herança
• Herança Simples x Herança Múltipla
• Herança Simples
– Pessoa → Funcionario
• Herança Múltipla
– Radio
– Relógio
• Java não possui herança múltipla!
Rádio-Relógio
![Page 45: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/45.jpg)
PERGUNTAS?
![Page 46: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/46.jpg)
PARTE PRÁTICA
![Page 47: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/47.jpg)
Experimentando
• Projeto: Animais
• Herança
– Classe Gato
– Classe Cachorro
• Sobrescrita!
![Page 48: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/48.jpg)
Exercício
• Projeto: Pessoas
• Classe Pessoa
– String nome;
– int idade;
![Page 49: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/49.jpg)
Exercício
• Projeto: Pessoas
• Classe Homem
– Idade mínima: 18
• Classe Mulher
– Diz idade máxima: 35
![Page 50: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/50.jpg)
APLICAÇÃO NO CASO PRÁTICO
![Page 51: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/51.jpg)
Avançando no CadProd
• Abra o projeto CadProd.
• Crie uma classe para cada tipo de produto
– Livro: String autor
– CD: String banda
– DVD: Diretor
– BD: Diretor e se é 3D ou não
![Page 52: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/52.jpg)
Avançando no CadProd
• Ainda no projeto CadProd
• Altere o programa principal de maneira que o preenchimento dos campos sejam parte dos objetos
![Page 53: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/53.jpg)
PROJETO / ATIVIDADE
![Page 54: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/54.jpg)
Projeto / Atividade
• Objetivo: criar cadastro de clientes simples
• Quem: Duplas especificadas
• A segunda entrega será 05/06
– Listagem de clientes
– Busca de clientes
– Edição de clientes
![Page 55: HERANÇA E POLIMORFISMO - Prof. Caetano Livro autor / setAutor / getAutor Herança em Java •No Java, a herança funciona assim: 1. Temos uma classe original, que chamamos de superclasse](https://reader031.vdocuments.site/reader031/viewer/2022020114/5be5b06009d3f2ea1a8beb2d/html5/thumbnails/55.jpg)
Projeto / Atividade • Hoje: Implementar a classe ListaDeClientes
– Nos mesmos moldes da CadProd
– Dois tipos de clientes:
• Cliente Pessoa Física (cpf)
• Cliente Pessoa Jurídica (cnpj)
Cliente
ClientePF ClientePJ