Aula 37-38 Programação Orientação Objeto em Java-Polimorfismo
Aula 37-38 Programação Orientação Objeto em Java-Polimorfismo
Aula 37-38 Programação Orientação Objeto em Java-Polimorfismo
PROGRAMAÇÃO II
POO em JAVA
[Polimorfismo]
Cursos de Computação
Polimorfismo
Polimorfismo
Polimorfismo
Polimorfismo
• Isto permite que objetos diferentes, de subclasses distintas, sejam vistos como
objetos de uma mesma superclasse – o método apropriado a ser executado será
escolhido automaticamente, baseado na subclasse a qual o objeto pertence.
Polimorfismo
Polimorfismo
public class Pessoa { public class PessoaFisica extends Pessoa {
Polimorfismo
public class PessoaJuridica extends Pessoa { public class Funcionario extends PessoaFisica {
Polimorfismo
public class PessoaPolimorfa {
public static void main(String[] args){
Pessoa pessoa = null;
int tipo = Integer.parseInt(JOptionPane.showInputDialog(“Forneça um número de 1 a 4”));
switch( tipo ) {
case 1: pessoa = new Pessoa(); break;
case 2: pessoa = new PessoaFisica(); break;
case 3: pessoa = new PessoaJuridica(); break;
case 4: pessoa = new Funcionario(); break;
default: {
System.out.println(“Tipo desconhecido”);
System.exit(0);
}
}
pessoa.mostraClasse();
}
}
9 Prof. Sérgio Roberto Costa Vieira, M.Sc. 2018
Linguagem de Programação II
POO em Java
Polimorfismo
Polimorfismo
Polimorfismo
Polimorfismo
– UpCasting
• Tipos genéricos, acima na hierarquia, sempre podem receber objetos de suas
subclasses.
– DownCasting
• Tipos específicos, abaixo na hierarquia, não podem receber explicitamente seus
objetos que foram declarados como referências de suas superclasses.
Polimorfismo
– Exemplo Simples:
• Em um jogo de xadrez temos várias peças, cada peça se movimenta,
porém cada tipo de peça se movimenta de uma maneira diferente (o peão
vai pra frente, o cavalo anda em L, o bispo em diagonal e assim por
diante).
• Desta maneira, todos (peão, cavalo e bispo) são peças, porém cada um
se movimenta de uma maneira diferente!
• O polimorfismo em Java se manifesta apenas na chamada de
métodos.
• Então ao passar uma mensagem para um objeto peça, dizendo para ele
se mover, o Java identificará que tipo de peça é e fará o movimento de
acordo com o tipo
• Essa decisão é tomada em tempo de execução (runtime) pelo Java
14 Prof. Sérgio Roberto Costa Vieira, M.Sc. 2018
Linguagem de Programação II
POO em Java
Polimorfismo (Xadrez)
public class Xadrez {
public static void main(String[] args){
Peca peao = new Peao();
peao.mover();
cavalo.mover();
bispo.mover();
}
}
Polimorfismo
Polimorfismo
public class ClasseAnimal { public class ClasseAves extends ClasseAnimal {
Polimorfismo
public class ClasseCaninos extends public class ClasseFelinos extends
Classe Animal { ClasseAnimal {
Polimorfismo (Resumindo)
POO em JAVA
[Polimorfismo]
Cursos de Computação