banco de dados
Orientada a Objetos
Alexandre César Muniz de Oliveira
Herança e polimorfismo Parte VII
1
Herança
Herança
Subclasse herda
Métodos públicos e protegidos
Variáveis de instâncias
Exemplo:
Classe Object
Método toString()
2
Herança public class Student { protected String name; public Student(String s) { name = s;
}
public String getName() { return name;
}
}
Herança
Student stu = new Student("Stu");
System.out.println(stu.toString());
1. Procura na própria classe
2. Não encontrando sobe a hierarquia de classes
3. até achar uma definição public ou protected definition
SAÍDA: Student@cde100
3
Sobreposição de métodos
Sobreposição de métodos (Overriding)
Redefenir um método permite configurar um dado método herdado às necessidades de determinada classe.
Sobreposição de métodos
Sobrescrever toString() para a classe
Student : public String toString() { return "My name is " + name + " and I am a
Student.";
}
Ambos Object e Student contêm implementações de toString().
>>> stu.toString() :
My name is Stu and I am a Student.
4
Sobreposição de métodos
Sobreposição de métodos
Herança
Métodos e variáveis public e protected podem são herdados por suas subclasses.
Sobreposição:
Sobrescreve um método herdado, adequando-o à subclasse 5
Polimorfismo
Ligação dinâmica
Polimorfismo permite múltiplas formas de comportamento Implementação correta de um método é definida em tempo de execução
Diferente da ligação estática que é resolvida em tempo de compilação
Todos os métodos são ligados dinamicamente, exceto:
Métodos privados
Métodos finais
Polimorfismo
Object obj; obj = new Student("Stu");
System.out.println(obj.toString());
obj = new OneRowNim(11);
System.out.println(obj.toString());
6
Polimorfismo
Método polimórfico public void polyMethod(Object obj) {
System.out.println(obj.toString()); // Polymorphic
}
...
Student stu = new Student("Stu");