Smalltalk: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
Linha 48:
Em Smalltalk não há o [[Polimorfismo]] Universal Paramétrico nem o Ad-Hoc por Coerção. Sendo assim só há implementado o Universal por Inclusão e o Ad-Hoc por Sobrecarga.
Exemplos:
* Inclusão:
<source lang="smalltalk">
Numeros subclass: #Primos
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Numeros'
Initialize
super initialize.
verificaSeEPrimo: temp "a funcao isPrime ja existe na classe Integer"
Transcript show: temp isPrime.
imprime
Transcript show:'sobrescrevi o metodo imprime da classe pai(Numeros). Isso mostra que Smalltalk suporta polimorfismo universal por inclusao'.
</source>
* Sobrecarga:
<source lang="smalltalk">
Object subclass: #Numeros
instanceVariableNames: 'val'
classVariableNames: ''
poolDictionaries: ''
category: 'Numeros'
Initialize
super initialize.
val := 0.
getVal
^ val.
setVal: aValor
val := aValor.
verificaSeEMembro: aInteger
^Transcript show: self class == aInteger class
imprime
Transcript show: val.
imprime: aValor
"temos aqui uma sobrecarga do metodo imprimir na mesma classe, o que prova que smalltalk suporta polimorfismo Ad-Hoc por sobrecarga"
Transcript show: aValor.
</source>
|