Polimorfismo, Interfaces, Classes Abstractas: Difference between revisions
From Wiki**3
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{NAVPO}} | {{NAVPO}} | ||
{{TOCright}} | |||
Vários aspectos de polimorfismo: | Vários aspectos de polimorfismo: | ||
| Line 7: | Line 7: | ||
* Herança e polimorfismo: ''upcasting'' e ''downcasting''. | * 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++) | |||
[[Comparação de Linguagens de Programação|comparação com outras linguagens]] | |||
=Interfaces= | =Interfaces= | ||
Revision as of 18:04, 8 November 2010
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++)
comparação com outras linguagens
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 - Exemplo com vector.
- Editor gráfico sem classes abstractas
- Editor gráfico com classes abstractas
- Exemplos Simples em Java e C++ (classes virtuais puras)
- Exemplo completo em Java:
Cão,Vigilante,CãoDeGuarda,CãoPastor,Chihuahua,Robot,XP,XP2003