Polimorfismo, Interfaces, Classes Abstractas: Difference between revisions

From Wiki**3

Root (talk | contribs)
No edit summary
Root (talk | contribs)
Line 30: Line 30:
==Exemplos==
==Exemplos==


* [[Exemplos Simples de Herança em Java#Hierarquia de Classes|Exemplo simples]]: <code>Animal</code>, <code>Mamífero</code>, <code>Gato</code>
* [[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

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)

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

Exercícios