Ola Christian Rauh,
NENHUMA LINGUAGEM precisa suportar overloading para ser orientada a objetos.
C suporta overloading e NAO EH ORIENTADA A OBJETOS. Nao ha exemplos aih, mas
vc poder dizer:
public void fazX(int a);
public void fazX(inta, int b);
nao tem nada a ver com orientacao a objetos. Qdo vc se refere a polimorfismo
com respeito a OOP, ESSA EH A UNICA FORMA ACEITAVEL, EMBORA COSTUMASSE SE
USAR ESTA DENOMINACAO NA EPOCA DAS LINGUAGENS PROCEDURAIS E ALGUNS AUTORES
NAO TENHAM SE RENOVADO. Polimorfismo eh definido pela grande maioria das
corporacoes (INCLUINDO A SUN NO JAVA TUTORIAL) como overriding. Vc pode
achar 1000 referencias que digam polimorfismo == overloading, mas depois da
chegada da OOP mudou-se para polimorfismo == overriding.
Note que Budd diz:
The most common form of polymorphism in CONVENTIAL PROGRAMMING LANGUAGES is
overloading
e nao em LINGUAGENS ORIENTADAS A OBJETO. E tb:
The facts that the compiler can often determine the correct
[OVERLOADING] function at compile time (in a strongly typed
language), and can generate only a single code sequence, are
simply optimizations
suponho q vc tenha acrescentado a parte em uppercase (pq gramaticamente em
ingles o certo seria OVERLOADED) e ISSO NAO IMPLICA EM ELE DIZER QUE
OVERLOADING EM LINGUAGENS ORIENTADAS A OBJETO EH POLIMORFISMO, sao apenas
"otimizacoes"; esta premissa (overloading == polimorfismo) soh se aplica na
"velha ordem procedural".
Eh uma questao muito particular, entretanto, mas todos os livros modernos
parecem apoiar a minha afirmacao (e a do Bruce Eckel, em quem eu confio...
costumo trocar uns e-mails com o cara, eh um patrimonio da humanidade...
:-))
Soh pra tirar a duvida, procure a ultima edicao do livro do Budd.
A lista toda (eu acho) agradece pelo seu interesse por essa "discussao
filosofica". OOP continua sendo um misterio para muitos por causa destas
divergencias entre as pessoas conceituadas.
[]'s
Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br
>From: Christian Rauh <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: Re: [java-list] Polimorfismo
>Date: Tue, 20 Mar 2001 11:05:39 -0300
>
>Caro Michael,
>
>Estou entrando tarde nesta discussão. Não sei qual é o ponto
>exato que você e o Sven estão defendendo mas a sua citação é
>errada. No livro "An Introduction to Object-Oriented Progamming"
>de Timothy Budd [Budd], temos:
>
>"The most common form of polymorphism in conventional programming
>languages is overloading". pg. 185
>
>Como a referencia [Budd] é mais importante do que [Eckel], temos
>que: overloading é polimorfismo. O que me parece que é o
>contrário do que você pretende provar.
>
>Em particular, analisemos o trecho citado por você de [Eckel]:
>
>Mister M wrote:
> >
> > People are often confused by other,
> > non-object-oriented features of C++, like overloading and default
> > arguments, which are sometimes presented as object-oriented.
> > Don’t be fooled; if it isn’t late binding, it isn’t polymorphism.
>
>Aqui ele implica que "se não é linkagem dinâmica" então "não é
>polimorfismo". Revertendo:
>
> polimorfismo -> linkagem dinâmica
>
>Porém, [Budd] diz logo a frente na seção 13.2 sobre overloading
>que:
>
>"The facts that the compiler can often determine the correct
>[overloading] function at compile time (in a strongly typed
>language), and can generate only a single code sequence, are
>simply optimizations"
>
>Ou seja, o fato de que o compilador pode descobrir a função
>correta em linguagem fortemente tipadas (como C++) e fazer
>linkagem estática é simplesmente um otimização. Assim, o C++ está
>simplesmente otimizando uma característica orientada a objeto.
>
>Obrigado,
>
>Christian Rauh
>NewTrade
>
>Referências:
>
>[Budd] Budd, Timothy. "An Introduction to Object-Oriented
>Progamming", Addison-Wesley, 1991.
>
>[Eckel] Eckel, Bruce. "Thinking C++".
>
>------------------------------ LISTA SOUJAVA ----------------------------
>http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-------------------------------------------------------------------------
>
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------