Anda di halaman 1dari 21

Programao Java (nvel

intermedirio) 4
Polimorfismo
Introduo
Uma linguagem orientada a objetos nos
permite definir novos tipos para variveis
Ns definimos um novo tipo atravs de uma
classe
Este tipo tem encapsulado no seu interior um
conjunto de caractersticas chamadas de
atributos da classe
Introduo
Sobre os atributos de uma classe possvel
realizar um conjunto de operaes chamadas
de mtodos
Mtodos
Atributos
Introduo
Quando eu crio uma varivel do tipo de uma
classe eu estou criando uma instncia daquela
classe
o mesmo que dizer que eu criei um objeto do
tipo daquela classe
Como o prprio nome diz, a classe classifica
um conjunto de objetos com propriedades
Ex: a classe das pessoas, que possui as
propriedade: peso, altura, idade
Introduo
CLASSE Pessoa
ATRIBUTOS
peso: Real;
altura: Real;
idade: Inteiro;
METODOS
andar(passos:Inteiro): vazio
falar(frase:String):vazio
pular(metros:Real):vazio
Fim_Classe_Pessoa
Introduo
Atravs da classe Pessoa possvel definir
todas as pessoas do mundo
Reviso - Herana
Em orientao a objetos esse conceito define
a habilidade uma nova classe adquirir as
propriedade de uma classe que j existia
Desde modo, a nova classe herda os atributos
e mtodos da classe ancestral
Por exemplo, sendo o aluno uma pessoa, ns
podemos determinar que uma nova classe
chamada aluno, que herda de Pessoa todas as
suas propriedades
Reviso - Herana
Ex 2:
Aluno
+ Aluno( ):
+ nome: String
+ matricula: String
+ nota1: float
+ nota2: float
Professor
+ Professor( ):
+ nome: String
+ matricula: String
+ turmas: int
Pessoa
+ nome: String
+ matricula: int
+ idade: int
+ altura: float
+ nome: String
Polimorfismo
Formalmente polimorfismo quer dizer vrias
formas.
Em OO, denota uma situao na qual um
objeto pode se comportar de maneiras
diferentes ao receber uma mensagem
O poliformismo alcanado com auxlio do
uso de herana nas classes e a reescrita
(overriding) de mtodos das superclasses nas
suas subclasses
Polimorfismo
Superclasse define uma classe pai (ancestral),
uma classe de quem se herda
J subclasse define o conjunto de classes que
herdam de uma superclasse
Duas subclasses de uma mesma classe
podem ter implementaes completamente
diferentes de um mesmo mtodo, da surge o
polimorfismo
Polimorfismo
Exemplo 3:
Podemos imaginar um programa que faa a
impresso de um relatrio, por meio de uma classe
chamada Impressora
Uma impressora a laser tem um mecanismo de
impresso totalmente diferente de uma impressora
a jato de tinta, mas isso no importa para o
programa
Ele manda uma simples mensagem de imprimir
para a impressora, e o modo como a impressora
imprime no papel varia de acordo com o tipo de
impressora usada
Polimorfismo
Diagrama de classes
Laser
+ Aluno( ):
+ nome: String
Jato de Tinta
+ Professor( ):
Impressora
+ atr1: String
+ atr2: int
+ nome: String
Relatrio
Polimorfismo por Overriding
O overriding (sobreposio) ocorre quando um
mtodo de uma superclasse sobrescrito por
um mtodo de mesmo nome de uma
subclasse
O mtodo na subclasse tem o mesmo nome,
assinatura e parmetros
Na compilao, o mtodo da subclasse ir
sobrepor o mtodo da superclasse
Polimorfismo por Overriding
Exemplo:
Polimorfismo por Overloading
O overloading (sobrecarregamento) ocorre
quando mais de um mtodo com o mesmo
nome implementado
Overloading pode se dar apenas pela
diferenciao dos argumentos do mtodo
Durante a compilao, o Java ir determinar
qual dos mtodos ser chamado
Isso depende do escopo de sua chamada
Polimorfismo por Overloading
Exemplo:
Palavras de Polimorfismo
A palavra this permite separar explicitamente
atributos de parmetros de um mtodo
Mas ela tambm permite separar mtodos
sobrecarregados dos no sobrecarregados
Quando aplicamos this a um mtodo
explicitamente definimos que o mtodo
chamado o da subclasse
Palavras de Polimorfismo
Ex:
class Pessoa{
String nome;
int passos;
int idade;
public int andar(){
passos =10;
}
}
Palavras de Polimorfismo
Ex:
class Aluno{
String nome;
int passos;
int idade;
public int andar(){
passos =20;
return passos
}
public static void main(String args[ ]){
this.andar();
}
}
Palavras de Polimorfismo
No caminho contrario, a palavra super ao ser
aplicada a um metodo define que o metodo
chamado o da superclasse
Ex:
public static void main(String args[ ]){
super.andar();
}

Anda mungkin juga menyukai