Polimorfismo, Interfaces, Classes Abstractas: Difference between revisions
From Wiki**3
| Line 47: | Line 47: | ||
* [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 04: Tabelas e Transformações|Exercício 04: Tabelas e Transformações]] | * [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 04: Tabelas e Transformações|Exercício 04: Tabelas e Transformações]] | ||
* [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 05: Tabelas e Impressoras|Exercício 05: Tabelas e Impressoras]] | * [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 05: Tabelas e Impressoras|Exercício 05: Tabelas e Impressoras]] | ||
* [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 06: Tabuleiros e Paças|Exercício 06: Tabuleiros e Peças]] | |||
[[category:Ensino]] | [[category:Ensino]] | ||
[[category:PO]] | [[category:PO]] | ||
Revision as of 22:31, 3 November 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 de Interfaces em Java e C++ (classes virtuais puras)
- Exemplo com vários conceitos:
Cão,Vigilante,CãoDeGuarda,CãoPastor,Chihuahua,Robot,XP,XP2003