SlideShare uma empresa Scribd logo
Arthur E. de O. Carosia
Java: Heranca e polimorfismo
Código Repetido
Código Novo
 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.
 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.
 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
 O gerente “é um” funcionário
 A classe Gerente herda todos os atributos e
métodos da classe mãe, no nosso caso,
a Funcionario.
 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.
 Super e Sub classe
◦ Funcionario é a superclasse de Gerente
◦ Gerente é a subclasse de Funcionario.
 Todo Gerente é um Funcionário.
é-um GeneralizaçãoEspecialização
 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
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:
 Métodos (ou atributos) da superclasse podem
ser invocados com o uso da palavra chave
super
 Construtores da superclasse também podem
ser invocados
 Construtores da superclasse também podem
ser invocados
 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
 Lista de Exercícios no Moodle
 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 é a capacidade de um objeto
poder ser referenciado de várias formas.
 Polimorfismo é a capacidade de um objeto
poder ser referenciado de várias formas.
No Java, a invocação de método sempre vai
ser decidida em tempo de execução.
O método executado é o do Gerente.
Java: Heranca e polimorfismo
Java: Heranca e polimorfismo
 Sistema de Faculdade que controle despesas
com funcionários e professores
 Funcionário
 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.
 Gerador de Relatórios
◦ Podemos passar para nossa classe
qualquer EmpregadoDaFaculdade.
◦ Vai funcionar tanto para professor, quanto para
funcionário comum.
 Benefício:
◦ Se desejarmos adicionar uma nova classe que
estende EmpregadoDaFaculdade, não é necessário
alterar a classe Relatório.
 Moodle
Arthur E. de O. Carosia

Mais conteúdo relacionado

Mais procurados

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
Daniel Brandão
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
Ludimila Monjardim Casagrande
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
Jorge Ávila Miranda
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
Aparicio Junior
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
Arthur Emanuel
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
soncino
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
Daniel Brandão
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
Daniel Brandão
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
Ludimila Monjardim Casagrande
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
Arthur Emanuel
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
Emerson Macedo
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
César Augusto Pessôa
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
Alex Camargo
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
Andre de Carvalho
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
Rafael Pinheiro
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
Loiane Groner
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
Gabriel Moura
 

Mais procurados (20)

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 

Destaque

Presentacion progra
Presentacion prograPresentacion progra
Presentacion progra
zeta2015
 
Polimorfismo - Higor Nucci
Polimorfismo - Higor NucciPolimorfismo - Higor Nucci
Polimorfismo - Higor Nucci
Higor Nucci
 
Polimorfismo em jogos
Polimorfismo em jogosPolimorfismo em jogos
Polimorfismo em jogos
Daniel Giampaulo
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
nestor_moren
 
Rpp 1-2-jurnal-khusus-perusahaan-dagang1
Rpp 1-2-jurnal-khusus-perusahaan-dagang1Rpp 1-2-jurnal-khusus-perusahaan-dagang1
Rpp 1-2-jurnal-khusus-perusahaan-dagang1
AGUS SETIYONO
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
Felippe Rodrigo Puhle
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
Angel Vázquez Patiño
 
Métodos de cocción indirecta
Métodos de cocción indirectaMétodos de cocción indirecta
Métodos de cocción indirecta
Ingrid Morales Mendoza
 
Mockito tutorial for beginners
Mockito tutorial for beginnersMockito tutorial for beginners
Mockito tutorial for beginners
inTwentyEight Minutes
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
Arthur Emanuel
 
Clean architecture on android
Clean architecture on androidClean architecture on android
Clean architecture on android
Benjamin Cheng
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
Daniel Arndt Alves
 
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat MultikulturalAnalisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
annisaaa
 
Herencia yPolimorfismo
Herencia yPolimorfismoHerencia yPolimorfismo
Herencia yPolimorfismo
José D Pluas
 
Materi pokok 5
Materi pokok 5Materi pokok 5
Materi pokok 5
Angela Purwanti
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
Evandro Júnior
 

Destaque (16)

Presentacion progra
Presentacion prograPresentacion progra
Presentacion progra
 
Polimorfismo - Higor Nucci
Polimorfismo - Higor NucciPolimorfismo - Higor Nucci
Polimorfismo - Higor Nucci
 
Polimorfismo em jogos
Polimorfismo em jogosPolimorfismo em jogos
Polimorfismo em jogos
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Rpp 1-2-jurnal-khusus-perusahaan-dagang1
Rpp 1-2-jurnal-khusus-perusahaan-dagang1Rpp 1-2-jurnal-khusus-perusahaan-dagang1
Rpp 1-2-jurnal-khusus-perusahaan-dagang1
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Métodos de cocción indirecta
Métodos de cocción indirectaMétodos de cocción indirecta
Métodos de cocción indirecta
 
Mockito tutorial for beginners
Mockito tutorial for beginnersMockito tutorial for beginners
Mockito tutorial for beginners
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Clean architecture on android
Clean architecture on androidClean architecture on android
Clean architecture on android
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat MultikulturalAnalisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
Analisis Keanekaragaman Kelompok Sosial Dalam Masyarakat Multikultural
 
Herencia yPolimorfismo
Herencia yPolimorfismoHerencia yPolimorfismo
Herencia yPolimorfismo
 
Materi pokok 5
Materi pokok 5Materi pokok 5
Materi pokok 5
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
 

Semelhante a Java: Heranca e polimorfismo

Aula Herança
Aula HerançaAula Herança
Aula Herança
Jorge Ávila Miranda
 
Heranca reescrita e_polimorfismo
Heranca reescrita e_polimorfismoHeranca reescrita e_polimorfismo
Heranca reescrita e_polimorfismo
Pedro Neto
 
Herança
HerançaHerança
Herança
Claudemir JOse
 
Herança.pptx
Herança.pptxHerança.pptx
Herança.pptx
GiselleSantos60
 
10 heranca
10   heranca10   heranca
10 heranca
Artur Todeschini
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
Leonardo Soares
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetos
Professor Samuel Ribeiro
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
secomp2011
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
Gardênia Santana
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
Regis Magalhães
 
Atividade 3
Atividade 3Atividade 3
Atividade 3
David Willian
 
Asp.Net Módulo3
Asp.Net  Módulo3Asp.Net  Módulo3
Asp.Net Módulo3
michellobo
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
Rafael Pinheiro
 
Aula 3.ppt
Aula 3.pptAula 3.ppt
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetos
mauroladeiafilho
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Professor Samuel Ribeiro
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AurelcioOliveira
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
Antonio Alves
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratas
Pedro Neto
 

Semelhante a Java: Heranca e polimorfismo (20)

Aula Herança
Aula HerançaAula Herança
Aula Herança
 
Heranca reescrita e_polimorfismo
Heranca reescrita e_polimorfismoHeranca reescrita e_polimorfismo
Heranca reescrita e_polimorfismo
 
Herança
HerançaHerança
Herança
 
Herança.pptx
Herança.pptxHerança.pptx
Herança.pptx
 
10 heranca
10   heranca10   heranca
10 heranca
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetos
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Atividade 3
Atividade 3Atividade 3
Atividade 3
 
Asp.Net Módulo3
Asp.Net  Módulo3Asp.Net  Módulo3
Asp.Net Módulo3
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
 
Aula 3.ppt
Aula 3.pptAula 3.ppt
Aula 3.ppt
 
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetos
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratas
 

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Arthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
Arthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
Arthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Arthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Arthur Emanuel
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Arthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Arthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Arthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Arthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Arthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
Arthur Emanuel
 
CSS 3
CSS 3CSS 3
CSS
CSSCSS
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
Arthur Emanuel
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
Arthur Emanuel
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
Arthur Emanuel
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
Arthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
Arthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
Arthur Emanuel
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
Arthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 

Java: Heranca e polimorfismo

  • 1. Arthur E. de O. Carosia
  • 4.  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.
  • 5.  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.
  • 6.  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
  • 7.  O gerente “é um” funcionário
  • 8.  A classe Gerente herda todos os atributos e métodos da classe mãe, no nosso caso, a Funcionario.
  • 9.  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.
  • 10.  Super e Sub classe ◦ Funcionario é a superclasse de Gerente ◦ Gerente é a subclasse de Funcionario.  Todo Gerente é um Funcionário. é-um GeneralizaçãoEspecialização
  • 11.  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
  • 13.  Métodos herdados podem ser reescritos nas subclasses  Ao herdar um método, podemos alterar seu comportamento.  Reescrever (@override) o método:
  • 14.  Métodos (ou atributos) da superclasse podem ser invocados com o uso da palavra chave super
  • 15.  Construtores da superclasse também podem ser invocados
  • 16.  Construtores da superclasse também podem ser invocados
  • 17.  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
  • 18.  Lista de Exercícios no Moodle
  • 19.  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.
  • 20.  Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas.
  • 21.  Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas. No Java, a invocação de método sempre vai ser decidida em tempo de execução. O método executado é o do Gerente.
  • 24.  Sistema de Faculdade que controle despesas com funcionários e professores
  • 26.  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.
  • 27.  Gerador de Relatórios ◦ Podemos passar para nossa classe qualquer EmpregadoDaFaculdade. ◦ Vai funcionar tanto para professor, quanto para funcionário comum.
  • 28.  Benefício: ◦ Se desejarmos adicionar uma nova classe que estende EmpregadoDaFaculdade, não é necessário alterar a classe Relatório.
  • 30. Arthur E. de O. Carosia