Paradigmas de Linguagens de Programação
Paradigma Orientado a ObjetosAula #8
(CopyLeft)2010 - Ismar Frango [email protected]
(More) Small talk ‘bout polymorphism...
PUI
Um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas
Animal
Polimorfismo Universal por Inclusão
Consequências: necessidade de herança, possibilidade de sobreposição, late binding...
Vtables
http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/
Vtables (cont.)
cClass obj (D1)
__vptr
pClass ptr (Base)
“People think of security as a noun, something you go buy. In reality, it's an abstract concept like happiness. Openness is unbelievably helpful to security.”
James Gosling
Polimorfismo Universal Paramétrico
P.U.P.
Uma função ou uma classe que siga o polimorfismo universal paramétrico tem um parâmetro de tipo (implícito ou explícito), que determina o tipo de argumento para cada aplicação dessa função/classe.
List < >
C++: template function members
Definição da template pelo programador
Chamada de função
Instanciação de função pelo pré-processador
Algo que, neste caso, uma macro faria
Java: Template methods
?
?
Java: Generics e autoboxing
?
Java: Generics & Type Erasure
?
?