SlideShare uma empresa Scribd logo
1 de 24
PCII
ETEC MONSENHOR ANTONIO MAGLIANO
Herança
&
Polimorfismo
O que é Herança?
Através da herança podemos fazer com que uma classe
herde propriedades de outra classe.
Geralmente devemos identificar classes que possuem
propriedades e comportamentos similares.
A base da herança pode ser listada como a seguir :
– propriedades comuns são transmitidas aos
descendentes
– descendentes podem adicionar/alterar propriedades
– estabelecem uma hierarquia de classes
– reduzem a quantidade de código
Classe (Declaração)
public class NomeClasse extends ClassePai {
}
public class PessoaJuridica extends Pessoa{
}
Exemplo
A classe Pessoa
Física e Pessoa
Jurídica herdam da
classe Pessoa
Exemplo
Exemplo
REESCRITA DE MÉTODO
Exemplo
Exemplo
Exemplo
Polimorfismo
Exemplo
Na herança, vimos que toda PessoaFisica é
uma Pessoa, pois é uma extensão desta. Podemos nos
referir a uma PessoaFisica como sendo uma Pessoa.
POLIMORFISMO
Polimorfismo é a capacidade de um objeto
poder ser referenciado de várias formas.
(cuidado, polimorfismo não quer dizer que o
objeto fica se transformando, muito pelo
contrário, um objeto nasce de um tipo e
morre daquele tipo, o que pode mudar é a
maneira como nos referimos a ele).
Adicionando mais uma classe
PessoaFisicaEspecial
Exemplo
A classe Pessoa
Física Especial
herda da classe
Pessoa Física
E também é uma
Pessoa... (Classe)
Exemplo
Alterar
Alterar
Exemplo
Outro Exemplo
Toda fábrica possui funcionários. Vamos imaginar
que ao fim do ano, caso as metas sejam
cumpridas, todos funcionários recebam um bônus de
10% sobre o salário mensal:
class Funcionario {
String nome;
String cpf;
double salario;
public double getBonificacao() {
return salario * 0.10;
}
}
Outro Exemplo
Além de funcionários comuns, há também outros cargos,
como os gerentes. Os gerentes tem as mesmas
informações que um funcionário comum + o número de
subordinados a eles.
Além disto, possui uma bonificação de 20%.
class Gerente extends Funcionario {
int numDeSubordinados;
}
Se não alterarmos a
classe Gerente , ela herdará do
Funcionário o método
getBonificacao.
Outro Exemplo
class Principal {
public static void main(String[] args) {
Gerente g= new Gerente();
Funcionario f = new Funcionario();
g.setNome(“Aloisio");
g.setSalario(10000.0);
f.setNome(“José");
f.setSalario(2000.0);
double bg = g.getBonificacao( );
double bf = f.getBonificacao( );
}
}
1.000 = 10%
200 = 10%
Solucionando
Para solucionar isto, uma das opções seria criar
um novo método na classe Gerente, chamado, por
exemplo: getBonificacaoGerente.
Problema: 2 métodos em Gerente, com respostas
diferentes e gerando confusão.
Solução: Quando herdamos um método, podemos
reescrever este método, alterarando seu
comportamento.
Solucionando
class Gerente extends Funcionario {
int numDeSubordinados;
@override
public double getBonificacao() {
return salario * 0.20;
}
}
Reescrevendo
método
• Java - Como programar, Harvey M. Deitel
• eclipse.org
• www.oracle.com/technetwork/java/index.html
• http://www.caelum.com.br/apostila-java-
orientacao-objetos/heranca-reescrita-e-
polimorfismo/#7-4-polimorfismo

Mais conteúdo relacionado

Destaque

POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
Ludimila Monjardim Casagrande
 

Destaque (8)

POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
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)
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 

Mais de ETEC Monsenhor Antonio Magliano

Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
ETEC Monsenhor Antonio Magliano
 

Mais de ETEC Monsenhor Antonio Magliano (20)

Cadastro Desktop (Swing) com JPA MySQL
Cadastro Desktop (Swing) com JPA MySQLCadastro Desktop (Swing) com JPA MySQL
Cadastro Desktop (Swing) com JPA MySQL
 
JPA INTRODUÇÃO
JPA INTRODUÇÃOJPA INTRODUÇÃO
JPA INTRODUÇÃO
 
Android - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de ContatosAndroid - Criando um Adapter personalizado para uma Agenda de Contatos
Android - Criando um Adapter personalizado para uma Agenda de Contatos
 
Android - Intents implícitas e explícitas
Android - Intents implícitas e explícitasAndroid - Intents implícitas e explícitas
Android - Intents implícitas e explícitas
 
Android - Criando uma ListView
Android - Criando  uma ListViewAndroid - Criando  uma ListView
Android - Criando uma ListView
 
APLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQL
APLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQLAPLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQL
APLICAÇÃO JAVA DE CADASTRO DE NOTA FISCAL USANDO BANCO MYSQL
 
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
CONEXÃO BANCO DE DADOS MYSQL  COM JAVACONEXÃO BANCO DE DADOS MYSQL  COM JAVA
CONEXÃO BANCO DE DADOS MYSQL COM JAVA
 
Sockets : Introdução
Sockets : IntroduçãoSockets : Introdução
Sockets : Introdução
 
THREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃOTHREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃO
 
PCII: SERIALIZAÇÃO: EXEMPLOS
PCII: SERIALIZAÇÃO: EXEMPLOSPCII: SERIALIZAÇÃO: EXEMPLOS
PCII: SERIALIZAÇÃO: EXEMPLOS
 
PCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃO
PCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃOPCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃO
PCII: SERIALIZAÇÃO EM JAVA: INTRODUÇÃO
 
PCII - INTERFACES EM JAVA: EXEMPLOS
PCII - INTERFACES EM JAVA: EXEMPLOSPCII - INTERFACES EM JAVA: EXEMPLOS
PCII - INTERFACES EM JAVA: EXEMPLOS
 
PCII AULA 3 - INTERFACES EM JAVA
PCII AULA 3 - INTERFACES EM JAVAPCII AULA 3 - INTERFACES EM JAVA
PCII AULA 3 - INTERFACES EM JAVA
 
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
 
Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)
Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)
Visual Basic 2010 - Gerando um Projeto de Instalação (Visual Studio Installer)
 
Visual Basic 2010 - Criando uma aplicação de Controle de Notas
Visual Basic 2010 - Criando uma aplicação de Controle de NotasVisual Basic 2010 - Criando uma aplicação de Controle de Notas
Visual Basic 2010 - Criando uma aplicação de Controle de Notas
 
GSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORA
GSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORAGSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORA
GSOIII Aula 8 - ANDROID - CRIANDO UMA CALCULADORA
 
GSOIII - INTRODUÇÃO AO ANDROID
GSOIII - INTRODUÇÃO AO ANDROIDGSOIII - INTRODUÇÃO AO ANDROID
GSOIII - INTRODUÇÃO AO ANDROID
 
GSOIII (JAVA) CONEXÃO SIMPLES COM BANCO
GSOIII (JAVA) CONEXÃO SIMPLES COM BANCOGSOIII (JAVA) CONEXÃO SIMPLES COM BANCO
GSOIII (JAVA) CONEXÃO SIMPLES COM BANCO
 
GSOIII (JAVA) CONEXÃO MYSQL
GSOIII (JAVA)  CONEXÃO MYSQLGSOIII (JAVA)  CONEXÃO MYSQL
GSOIII (JAVA) CONEXÃO MYSQL
 

PCII - AULA 2: HERANÇA EM JAVA

  • 3. O que é Herança? Através da herança podemos fazer com que uma classe herde propriedades de outra classe. Geralmente devemos identificar classes que possuem propriedades e comportamentos similares. A base da herança pode ser listada como a seguir : – propriedades comuns são transmitidas aos descendentes – descendentes podem adicionar/alterar propriedades – estabelecem uma hierarquia de classes – reduzem a quantidade de código
  • 4. Classe (Declaração) public class NomeClasse extends ClassePai { } public class PessoaJuridica extends Pessoa{ }
  • 5. Exemplo A classe Pessoa Física e Pessoa Jurídica herdam da classe Pessoa
  • 11. Exemplo Na herança, vimos que toda PessoaFisica é uma Pessoa, pois é uma extensão desta. Podemos nos referir a uma PessoaFisica como sendo uma Pessoa.
  • 12. POLIMORFISMO Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas. (cuidado, polimorfismo não quer dizer que o objeto fica se transformando, muito pelo contrário, um objeto nasce de um tipo e morre daquele tipo, o que pode mudar é a maneira como nos referimos a ele).
  • 13. Adicionando mais uma classe PessoaFisicaEspecial
  • 14. Exemplo A classe Pessoa Física Especial herda da classe Pessoa Física E também é uma Pessoa... (Classe)
  • 19. Outro Exemplo Toda fábrica possui funcionários. Vamos imaginar que ao fim do ano, caso as metas sejam cumpridas, todos funcionários recebam um bônus de 10% sobre o salário mensal: class Funcionario { String nome; String cpf; double salario; public double getBonificacao() { return salario * 0.10; } }
  • 20. Outro Exemplo Além de funcionários comuns, há também outros cargos, como os gerentes. Os gerentes tem as mesmas informações que um funcionário comum + o número de subordinados a eles. Além disto, possui uma bonificação de 20%. class Gerente extends Funcionario { int numDeSubordinados; } Se não alterarmos a classe Gerente , ela herdará do Funcionário o método getBonificacao.
  • 21. Outro Exemplo class Principal { public static void main(String[] args) { Gerente g= new Gerente(); Funcionario f = new Funcionario(); g.setNome(“Aloisio"); g.setSalario(10000.0); f.setNome(“José"); f.setSalario(2000.0); double bg = g.getBonificacao( ); double bf = f.getBonificacao( ); } } 1.000 = 10% 200 = 10%
  • 22. Solucionando Para solucionar isto, uma das opções seria criar um novo método na classe Gerente, chamado, por exemplo: getBonificacaoGerente. Problema: 2 métodos em Gerente, com respostas diferentes e gerando confusão. Solução: Quando herdamos um método, podemos reescrever este método, alterarando seu comportamento.
  • 23. Solucionando class Gerente extends Funcionario { int numDeSubordinados; @override public double getBonificacao() { return salario * 0.20; } } Reescrevendo método
  • 24. • Java - Como programar, Harvey M. Deitel • eclipse.org • www.oracle.com/technetwork/java/index.html • http://www.caelum.com.br/apostila-java- orientacao-objetos/heranca-reescrita-e- polimorfismo/#7-4-polimorfismo