Polimorfismo, Interfaces, Classes Abstractas: Difference between revisions
From Wiki**3
| Line 38: | Line 38: | ||
* [[Polimorfismo, Interfaces, Classes Abstractas: Exemplos Simples|Exemplos Simples]] em Java e C++ (classes virtuais puras) | * [[Polimorfismo, Interfaces, Classes Abstractas: Exemplos Simples|Exemplos Simples]] em Java e C++ (classes virtuais puras) | ||
* [[Polimorfismo, Interfaces, Classes Abstractas | * [[Polimorfismo, Interfaces, Classes Abstractas/Exemplo com vários conceitos|Exemplo com vários conceitos]]: <code>Cão</code>, <code>Vigilante</code>, <code>CãoDeGuarda</code>, <code>CãoPastor</code>, <code>Chihuahua</code>, <code>Robot</code>, <code>XP</code>, <code>XP2003</code> | ||
== Exercícios == | == Exercícios == | ||
Revision as of 17:37, 23 October 2013
Vários aspectos de polimorfismo:
- Polimorfismo e tipos primitivos
- Polimorfismo e tipos compostos (classes).
- Herança e polimorfismo: upcasting e downcasting.
- Definição de métodos: overloading vs. overriding
- Selecção do método a invocar:
- early binding -- o método a invocar é conhecido em tempo de compilação (e.g., final em Java e não-virtual em C++)
- late binding -- o método a invocar é apenas conhecido em tempo de execução (habitual em Java; única possibilidade em PHP e outras linguagens semelhantes; e métodos declarados com virtual em C++)
Interfaces
- Princípios e propriedades
- Separação de interface e implementação
Classes Abstractas
- Noção de classe abstracta
- Propriedades
- Polimorfismo e classes abstractas
- Discussão de aspectos problemáticos
- Contraste com interfaces
Exemplos e Exercícios
Exemplos
- Exemplo simples: Animal, Mamífero, Gato
- Exemplos Simples em Java e C++ (classes virtuais puras)
- Exemplo com vários conceitos:
Cão,Vigilante,CãoDeGuarda,CãoPastor,Chihuahua,Robot,XP,XP2003