Polimorfismo, Interfaces, Classes Abstractas: Difference between revisions
From Wiki**3
No edit summary |
|||
| Line 30: | Line 30: | ||
==Exemplos== | ==Exemplos== | ||
* [[Exemplos Simples de Herança em Java | * [[Polimorfismo, Interfaces, Classes Abstractas/Exemplos Simples de Herança em Java|Exemplo simples]]: '''Animal''', '''Mamífero''', '''Gato''' | ||
* [[Exemplos Simples de Herança em Java#Vector|Exemplo com vector]]. | * [[Exemplos Simples de Herança em Java#Vector|Exemplo com vector]]. | ||
Revision as of 17:31, 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
- Exemplo com vector.
- Exemplos Simples em Java e C++ (classes virtuais puras)
- Exemplo completo em Java:
Cão,Vigilante,CãoDeGuarda,CãoPastor,Chihuahua,Robot,XP,XP2003