Smalltalk: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Roma6 (discussão | contribs)
Roma6 (discussão | contribs)
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>