Buscar

8-Sobrescrita, Polimorfismo e Sobrecarga

Prévia do material em texto

PROGRAMAÇÃO II
SOBRESCRITA, POLIMORFISMO 
E SOBRECARGA
Profa. Juliana Mafra 
(jmafra.pe@gmail.com)
SOBRESCRITA
SOBRESCRITA
• Sobrescrita (overriding) é a redefinição de métodos
herdados da superclasse.
• Para que haja a redefinição de métodos, o novo
método deve ter a mesma assinatura (nome e
parâmetros) que o método da superclasse.
• Redefinições de métodos devem preservar o
comportamento (semântica) do método original.
SOBRESCRITA
Redefinição do método
creditar()
SOBRESCRITA
Redefinição do método
creditar()
SOBRESCRITA
// Referência Conta, mas é um objeto
// ContaBonificada
POLIMORFISMO
POLIMORFISMO 
• Dois métodos com o mesmo nome e tipo:
- qual versão do método usar?
• Polimorfismo é a capacidade de um objeto poder ser
referenciado de várias formas.
• O método é escolhido dinamicamente (em tempo de
execução), não estaticamente (em tempo de compilação)
• A escolha é baseada no tipo do objeto que recebe a
chamada do método.
POLIMORFISMO 
// Executa a versão Conta de creditar()
// Executa a versão ContaBonificada de creditar()
Ligações Dinâmicas!
SOBRECARGA
SOBRECARGA 
• Quando se define um método com mesmo nome, mas
com parâmetros de tipos diferentes, não há redefinição e
sim, sobrecarga (overloading).
• Sobrecarga permite a definição de vários métodos com o
mesmo nome em uma classe. O mesmo vale para
construtores.
• A escolha do método a ser executado é baseada no tipo
dos parâmetros passados ( o tipo de retorno não é
levado em consideração).
SOBRECARGA 
EXERCÍCIOS
Modifique o projeto criado na aula anterior:
1 (SOBRECARGA). Adicione um construtor sem parâmetros nas
classes Pessoa, Aluno, Professor e Curso que inicialize os
atributos da classe com os valores padrões.
2 (SOBRESCRITA). Crie um método toString()* em todas as
classes do projeto que retorne uma String com todos os dados
dos objetos instanciados.
*O Java oferece uma implementação padrão para o método toString() através da classe
java.lang.Object que é herdada por todas as classes Java.
EXERCÍCIOS
DÚVIDAS

Continue navegando