[java-list] Polimorfismo

2001-03-07 Thread André

Caros amigos,

Estou estudando POO e estou com algumas dúvidas sobre
polimorfismo.
A única coisa que sei sobre o assunto é que 
está propriedade da OO permite que uma classe tenha
vários métodos com o mesmo nome desde de que o múmero
e o tipo de parâmetros seja diferentes.
Todo mundo fala que polimorfismo é só isso!!
Porém queria que se possível vc´s me mostrassem
exemplos de onde e quando utilizar está propriedade e
o que significa realmente polimorfismo..
Desde já agradeço a atenção de todos,

André Yurion

__
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.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] 
-




[java-list] Polimorfismo

2001-03-19 Thread Mister M

Ola pessoal,

Para finalizar com peso a discussao sobre polimorfismo e mostrar q a
definicao apresentada por mim e pelo Sven eh a correta, lah vai uma citacao
do Thinking in C++, do Bruce Eckel, pg. 716 (737 no PDF), que tb se aplica
ao Java:

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.

Traducao (com algumas observacoes):

As pessoas geralmente ficam consas com outras caracteristicas
NAO-ORIENTADAS-A-OBJETO do C++, como overloading (sobrecarga, ou seja, ter
um metodo a(), a(int i) e a(int i, byte b)) e argumentos padrao, que sao
apresentadas como sendo orientadas a objeto algumas vezes. Nao se deixe
enganar: se nao eh late binding (ou dynamic binding, sinonimos), NAO E
POLIMORFISMO.

O mestre Bruce falou, quem sou eu pra discordar... :-)

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br


[java-list] Polimorfismo

2001-03-20 Thread Mister M

Mais uma citacao do livro Core Java, Cornell & Horstmann, Makron Books, 
1998, traduzido do original da Sun (pg 155-6):

A capacidade de um objeto decidir qual metodo aplicara a si mesmo, 
dependendo de onde se encontra na hierarquia de heranca, e chamda de 
polimorfismo. A ideia por tras do polimorfismo eh que, embora a mensagem 
possa ser a mesma, os objetos talvez respondam de forma diferente. O 
polimorfismo pode se aplicar a qualquer metodo herdado de uma superclasse.
A chave para que o polimorfismo funcione eh chamada de ligacao adiada. Isso 
significa q o compilador nao gera o codigo para chamar um metodo em tempo de 
compilacao. Em vez disso, sempre que vc define um metodo com um objeto, o 
compilador gera o codigo para calcular qual metodo chamara, usando a 
informacao de tipo do objeto. Esse processo geralmente eh conhecido como 
ligacao adiada, ligacao dinamica ou despacho dinamico. O mecanismo regular 
de chamada de funcao eh conhecido como ligacao estatica, pois a operacao a 
ser executada eh completamente determinada em tempo de compilacao. A ligacao 
estatica depende apenas do metodo; a ligacao dinamica depende do tipo de 
variavel do objeto e da posicao do objeto real na hierarquia de heranca.
Resumindo, a heranca e o polimorfismo permitem que o aplicativo informe o 
modo geral pelo qual deseja que as coisas prossigam. As classes individuais 
na hierarquia de heranca sao responsaveis por executar os detalhes - usando 
o polimorfismo para determinar quais metodos chamarah.
O polimorfismo em uma hierarquia de heranca as vezes eh chamado de 
POLIMORFISMO VERDADEIRO, distinguindo-o do tipo mais limitado de sobrecarga 
de nome que nao eh resolvido dinamicamente, mas estaticamente, em tempo de 
execucao.

Veja a pagina 7 do glossario da apostila do curso SL-110:

polymorphism
A method that is "multiply formed". That is, the same method name with THE 
SAME PROTOTYPE is defined for TWO OR MORE CLASSES. Polymorphic methods have 
the same semantics (that is, to read, write, display, and update an object), 
but different IMPLEMENTATIONS. Each implementation is appropriate for the 
particular class for which it is defined.

Resumindo:
-> Polimorfismo tem a ver com heranca
-> Polimorfismo tem a ver com fazer:

public class Animal {
   public void oi() {
  System.out.println("animal");
   }
}

public class Cachorro extends Animal {
   public void oi() {
  System.out.println("cachorro");
   }
}

public class Teste {
   public static void main(String[] args) {
  Animal animal = new Cachorro();
  animal.oi();
   }
}

e receber cachorro na saida padrao.

-> Polimorfismo tem a ver com dynamic binding ou late binding e nunca com 
static binding
-> A crenca de q polimorfismo eh sobrecarga ou overloading vem da epoca do 
C, quando nao havia orientacao a objetos. Hoje, digamos assim, dizer que 
overloading == polimorfismo eh "deprecated".

Os materiais citados sao propriedade intelectual de seus autores. Se alguem 
ainda tiver duvida sobre esses conceitos basicos da OOP, faca um curso da 
Sun, pq pra isso eles sao bons (aprender Java mesmo eh mais complicado...)

[]'s
Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

_
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] 
-




[java-list] Polimorfismo

2001-04-24 Thread Kleber Rodrigo de Carvalho



PessoALL !!!
Alguém tem algum exemplo de polimorfismo para eu 
estudar..
 
OBS: sei que esta pergunta é 
basica..
 
t+
obrigado
 
 
 


[java-list] polimorfismo ..?

2003-02-01 Thread everson

olá lista.

To lendo o Java como Programar - Deitel, cap 9, pág 409 à 414. Arquivo
Test.java (413). A dúvida é:
pq que ao invés de fazer:
1)

Employee ref;  // superclass reference
Boss b = new Boss( "John", "Smith", 800.00 );
 ref = b;
output += ref.toString() + " earned $" +   (como está no livro)

não fez direto :
2)
output += b.toString() + " earned $" +   (minha dúvida)

Já q no 1) vai ser chamado o metodo toString da classe Boss, como no 2) ...
Existe alguma diferença entre
um e outro ???




-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




RES: [java-list] Polimorfismo

2001-03-07 Thread Sergio Stateri Jr

Veja um exemplo de métodos que retornam arrays de objetos de clientes :

// Get All Customers
public Customer[] getCustomers()  {}

// Get All Customers that birthday is between data1 and data2
public Customer[] getCustomers(Date data1, Date data2)  {}

// Get All Customers that customerId in in the parameter array
public Customer[] getCustomers(int[] customerIds)  {}



Perceba que o nome do método é o mesmo, mas os parâmetros variam para
suprir todas as necessidades de pesquisa.

[]s,


Sergio Stateri Jr
[EMAIL PROTECTED]
Tesla Tecnologia

-Mensagem original-
De: Yurion André [mailto:[EMAIL PROTECTED]]
Enviada em: Quarta-feira, 7 de Março de 2001 14:44
Para: [EMAIL PROTECTED]
Assunto: [java-list] Polimorfismo


Caros amigos,

Estou estudando POO e estou com algumas dúvidas sobre
polimorfismo.
A única coisa que sei sobre o assunto é que
está propriedade da OO permite que uma classe tenha
vários métodos com o mesmo nome desde de que o múmero
e o tipo de parâmetros seja diferentes.
Todo mundo fala que polimorfismo é só isso!!
Porém queria que se possível vc´s me mostrassem
exemplos de onde e quando utilizar está propriedade e
o que significa realmente polimorfismo..
Desde já agradeço a atenção de todos,

André Yurion

__
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.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]
-


-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-07 Thread Sven van ´t Veer

Polimorphism indica a abilidade de uma referencia a uma superclasse a 
conter uma referencia a ele ou todos os subclasses dele

poli = muito (varias)
morpf = formas de apresentação

imagine :
class animal extends object{
   public boolean equals(Object o){

   }
}

class bird extends animal{
   public boolean equals(Object o){

   }
}

class arara extends bird{
   public boolean equals(Object o){

   }
}

class foo{
   object o;
   animal a;

   o = new animal();
   a = new arara();

   o = a;
   o.equals(a);  // true pois por Dynamic Method Binding seria 
((animal)o).equals(a);

   a = new bird();

   o.equals(a); // false pois o é instancia de animal enquanto a 
agora e instancia de bird
}

O fato que uma classe pode conter varias methodos com mesmo nome mas 
signature diferente é method overloading e não tem muito a ver vom OO.

Para saber mais procura ler um livro sobre OO.

sven

Yurion André wrote:

> Caros amigos,
> 
> Estou estudando POO e estou com algumas dúvidas sobre
> polimorfismo.
> A única coisa que sei sobre o assunto é que 
> está propriedade da OO permite que uma classe tenha
> vários métodos com o mesmo nome desde de que o múmero
> e o tipo de parâmetros seja diferentes.
> Todo mundo fala que polimorfismo é só isso!!
> Porém queria que se possível vc´s me mostrassem
> exemplos de onde e quando utilizar está propriedade e
> o que significa realmente polimorfismo..
> Desde já agradeço a atenção de todos,
> 
> André Yurion
> 
> __
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail. 
> http://personal.mail.yahoo.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] 
> -
> 
> 


-- 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] 
-




RES: [java-list] Polimorfismo

2001-03-07 Thread Alexandre Rodrigues Gomes

André, por poliformismo podemos que concluir que seja algo com muitas
formas, certo ? 
Este algo de que estamos falando são os métodos, ou seja, polimorfismo é a
propriedade para que um método assuma várias formas.
Por exemplo, considere um método que faça um pesquisa por um cliente numa
base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
necessidade de criar dois métodos distindos:

findClientByName(String name) e 
findClientByCPF(long cpf)

Com o polimorfismo, isto não é necessário, o que torna sua solução mais
transparente e elegante:

findClient(String name) e 
findClient(long cpf)

suponha também que desejamos criar um método para pesquisa que faça a
interseção entre idade e naturalidade. Logo, construiríamos um método com a
seguinte assinatura:

findClient(Date idade, String natural)

e todos estes métodos poderiam conviver numa mesma classe, sem problemas.

By Alê!


-Mensagem original-
De: Yurion "André [mailto:[EMAIL PROTECTED]]
Enviada em: quarta-feira, 7 de março de 2001 14:44
Para: [EMAIL PROTECTED]
Assunto: [java-list] Polimorfismo


Caros amigos,

Estou estudando POO e estou com algumas dúvidas sobre
polimorfismo.
A única coisa que sei sobre o assunto é que 
está propriedade da OO permite que uma classe tenha
vários métodos com o mesmo nome desde de que o múmero
e o tipo de parâmetros seja diferentes.
Todo mundo fala que polimorfismo é só isso!!
Porém queria que se possível vc´s me mostrassem
exemplos de onde e quando utilizar está propriedade e
o que significa realmente polimorfismo..
Desde já agradeço a atenção de todos,

André Yurion

__
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.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] 
-

-- 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]
-




Re: [java-list] Polimorfismo

2001-03-08 Thread Silvio L. de Morais

Bom, para comecar, existem 2 tipos de polimorfismo.
O primerio, e mais simples, eh o que voce descreve no
seu email. A possibilidade de escrever varios metodos
com o mesmmo nome, desde que tenham assinaturas*
diferentes. Esse tipo de policorfismo tambem eh
chamado de sobrecarga de metodo.

Um exemplo tipico desse pode ser encontrado nos
construtores. A classe String, por exemplo, pode ser
criada de 11 maneiras diferentes. 
Mas essa forma de polimerfismo eh muito simples, e por
si soh nao significa muito em termos de POO.

A outra forma de polimorfismo, muito mais util, eh a
capacidade de um objeto de uma subclasse ocupar o
lugar de um objeto da super classe. E a JVM se
encarrega de executar os metodos do objeto
instanciado, independente do tipo declarado.

Exemplo.

class FormaGeometrica {
public void desenhar(){
System.out.println("Forma Geometrica");
}

}

class Triangulo extends FormaGeometrica {
public void desenhar(){
System.out.println("Triangulo");
}
}


public class Foo  {

public static void main(String[] s) {
FormaGeometrica f = new Triangulo();
f.desenhar();
}
}


Quando o metodo “desenhar“ for executado em “f”, a
string “Triangulo” serah impressa, mesmo que “f” tenha
sido declarado como do tipo “FormaGeometrica”. Esse eh
o polimorfismo que tem mais valor na POO, e resolve
diversos problemas. Tambem eh chamado de “Dynamic
Binding”, “Late Binding”, “Run-time Binding” e outros
sinonimos, na literatura.
Praticamente todo bom livro de POO/Java tem uma boa
definicao de polimorfismo. 





* o numero, o tipo e a ordem dos parametros de um
metodo definem sua assinatura. Porem, o tipo de
retorno de um metodo nao eh parte da assinatura, pelo
menos nao em Java ou C++. 


Silvio


--- Yurion André <[EMAIL PROTECTED]> wrote:
> Caros amigos,
> 
> Estou estudando POO e estou com algumas dúvidas
> sobre
> polimorfismo.
> A única coisa que sei sobre o assunto é que 
> está propriedade da OO permite que uma classe tenha
> vários métodos com o mesmo nome desde de que o
> múmero
> e o tipo de parâmetros seja diferentes.
> Todo mundo fala que polimorfismo é só isso!!
> Porém queria que se possível vc´s me mostrassem
> exemplos de onde e quando utilizar está propriedade
> e
> o que significa realmente polimorfismo..
> Desde já agradeço a atenção de todos,
> 
> André Yurion
> 
> __
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail. 
> http://personal.mail.yahoo.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] 
>
-
> 
> 
> 
> 


__
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.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] 
-




Re: [java-list] Polimorfismo

2001-03-08 Thread Leonardo


- Original Message -
From: "Yurion André" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, March 07, 2001 2:44 PM
Subject: [java-list] Polimorfismo


> Caros amigos,
>
> Estou estudando POO e estou com algumas dúvidas sobre
> polimorfismo.
> A única coisa que sei sobre o assunto é que
> está propriedade da OO permite que uma classe tenha
> vários métodos com o mesmo nome desde de que o múmero
> e o tipo de parâmetros seja diferentes.
> Todo mundo fala que polimorfismo é só isso!!
> Porém queria que se possível vc´s me mostrassem
> exemplos de onde e quando utilizar está propriedade e
> o que significa realmente polimorfismo..
> Desde já agradeço a atenção de todos,
>
> André Yurion
>
> __
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail.
> http://personal.mail.yahoo.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]
> -

Imagina uma super classe ou interface Poligono:

public interface Poligono{
public void draw();
}

E duas classes filhos de polígonos: Triangulo e Quadrado:

public class Triangulo implements Poligono{
/** rotina que desenha um triangulo */
public void draw(){
System.out.println("desenhar um triangulo");
}
}

public class Quadrado implements Poligono{
/** rotina que desenha um quadrado */
public void draw(){
System.out.println("desenhar um quadrado");
}
}

Imagine uma classe que contém uma colecao de poligonos e as desenhe:

public class PoligonoCollection extends Vector {
public void inserirPoligono(Poligono poligono){
addElement(poligono);
}

public void drawAll(){
java.util.Enumeration enumeration = elements();
while(enumeration.hasMoreElements()){
 ((Poligono)enumeration.nextElement()).draw();
}
}
}



E uma classe para testa-lo ...


public class TestePoligonos{
public static void main(String [] args){
PoligonoCollection pCollection = new PoligonoCollection();
pCollection.inserirPoligono(new Triangulo());
pCollection.inserirPoligono(new Triangulo());
pCollection.inserirPoligono(new Triangulo());
pCollection.inserirPoligono(new Quadrado());
pCollection.inserirPoligono(new Triangulo());
pCollection.inserirPoligono(new Quadrado());
pCollection.inserirPoligono(new Triangulo());
pCollection.inserirPoligono(new Quadrado());
pCollection.drawAll();
}
}


Por que o polimorfismo ???

Imagina uma outra situação onde você precise utilizar outras figuras
geométricas além do Triangulo e Quadrado...
Você precisa reimplementar a classe PoligonoCollection ???
Resposta é não !

Sacou o por que do polimorfismo 


[]'s

LN


_
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.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] 
-




RE: [java-list] Polimorfismo

2001-03-08 Thread Jorge Martins

André,

Isto não é polimorfismo. Isto é sobrecarga de métodos (ou ainda de
construtores). Polimorfismo é a capacidade de objetos responderem
diferenciadamente, de acordo com a sua classe, a um mesma mensagem.

Assim, ao convocar um método de um objeto criado, ele responderá de acordo
com a classe que ele foi criado e não de acordo com o tipo de referência.

Exemplo: (sem entrar no mérito desta péssima modelagem)

class Homem  
{
void anda ()
{

}
}

class Perneta extends Homem
{
void anda()
{
...
}
}

.

Homem a = new Homem();
Homem b = new Perneta();

a.anda();   // anda como um homem
b.anda();   // anda como um perneta

..


Ficou claro?

abraços

Jorge

-Original Message-
From: Yurion "André [mailto:[EMAIL PROTECTED]]
Sent: quarta-feira, 7 de março de 2001 14:44
To: [EMAIL PROTECTED]
Subject: [java-list] Polimorfismo


Caros amigos,

Estou estudando POO e estou com algumas dúvidas sobre
polimorfismo.
A única coisa que sei sobre o assunto é que 
está propriedade da OO permite que uma classe tenha
vários métodos com o mesmo nome desde de que o múmero
e o tipo de parâmetros seja diferentes.
Todo mundo fala que polimorfismo é só isso!!
Porém queria que se possível vc´s me mostrassem
exemplos de onde e quando utilizar está propriedade e
o que significa realmente polimorfismo..
Desde já agradeço a atenção de todos,

André Yurion

__
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.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] 
-

-- 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]
-




Re: [java-list] Polimorfismo

2001-03-20 Thread Christian Rauh

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] 
-




Re: [java-list] Polimorfismo

2001-03-20 Thread Mister M

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] 
-




RE: [java-list] Polimorfismo

2001-03-20 Thread Andre Mendonca


Dei uma rapida pesquisada e percebi que muita gente diz que
overloading eh polimorfismo e muita gente diz que nao eh.

Como a importancia das referencias esta em questao, o que eh
que Bertrand Meyer diz a respeito do assunto? Alguem tem o livro
dele por perto? (o meu esta la em casa)

Acho que ele diz que overloading _eh_ polimorfismo, mas nao
tenho certeza.

Andre Mendonca
[EMAIL PROTECTED]
Sakonnet Technology, LLC
594 Broadway, Suite 1008
New York, NY 10012

-Original Message-
From: Christian Rauh [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 20, 2001 9:06 AM
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Polimorfismo


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]
-



-- 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] 
-




RE: [java-list] Polimorfismo

2001-03-20 Thread Andre Mendonca


Mister M,

Ate onde eu pude ver, muitos autores consideram overloading 
um tipo de polimorfismo. Tavez seja uma questao de definicao, 
quase como uma preferencia pessoal, que na pratica pouco 
afeta a maneira como programamos.

> A capacidade de um objeto decidir qual metodo aplicara 
> a si mesmo, dependendo de onde se encontra na hierarquia 
> de heranca, e chamda de polimorfismo...

Esta eh a definicao mais conhecida de polimorfismo. Inclusive
eh a unica que eu considerava correta ate o comeco desta 
discussao.

> O polimorfismo em uma hierarquia de heranca as vezes eh 
> chamado de POLIMORFISMO VERDADEIRO, distinguindo-o do tipo 
> mais limitado de sobrecarga de nome que nao eh resolvido 
> dinamicamente, mas estaticamente, em tempo de execucao.

Polimorfismo verdadeiro, polimorfismo simples, polimorfismo
(ponto final). Ha outros nomes, provavelmente. Porem, uma 
interpretacao deste trecho acima me leva a crer que o autor 
nao descarta a existencia de outros tipos de polimorfismo.

> Resumindo:
> -> Polimorfismo tem a ver com heranca
> -> Polimorfismo tem a ver com fazer:

Como eu disse, muita gente acha que o conceito de polimorfismo
eh um pouco mais abrangente. Repito, ate pouco tempo atras (algumas
horas, talvez), eu nao considerava overloading polimorfismo.
Continuo achando estranho o conceito, mas eu nao diria que eh errado.
Talvez polimorfismo tenha a ver com "muitas formas", o que nao
descarta overloading. Vou perguntar novamente, alguem sabe o que 
Bertrand Meyer diz a respeito do assunto?

> Os materiais citados sao propriedade intelectual de seus autores. 
> Se alguem ainda tiver duvida sobre esses conceitos basicos da OOP, 
> faca um curso da Sun, pq pra isso eles sao bons (aprender Java 
> mesmo eh mais complicado...)

Talvez o curso nao seja necessario, ate mesmo porque esta nao
eh uma duvida basica. Eh uma questao conceitual que, ate onde
eu posso ver, esta longe de ser uma unanimidade.

Abraco,

Andre Mendonca
[EMAIL PROTECTED]




-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-20 Thread anderson balduino

Caro André
vi você comentando a respeito do curso da Sun, sou iniciante e gostaria
que desse a sua opnião a respeito deste cursos, pois estou prestes a
fazê-los.

Um abraço Anderson
[EMAIL PROTECTED]

- Original Message -
From: Andre Mendonca <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 20, 2001 4:33 PM
Subject: RE: [java-list] Polimorfismo


>
> Mister M,
>
> Ate onde eu pude ver, muitos autores consideram overloading
> um tipo de polimorfismo. Tavez seja uma questao de definicao,
> quase como uma preferencia pessoal, que na pratica pouco
> afeta a maneira como programamos.
>
> > A capacidade de um objeto decidir qual metodo aplicara
> > a si mesmo, dependendo de onde se encontra na hierarquia
> > de heranca, e chamda de polimorfismo...
>
> Esta eh a definicao mais conhecida de polimorfismo. Inclusive
> eh a unica que eu considerava correta ate o comeco desta
> discussao.
>
> > O polimorfismo em uma hierarquia de heranca as vezes eh
> > chamado de POLIMORFISMO VERDADEIRO, distinguindo-o do tipo
> > mais limitado de sobrecarga de nome que nao eh resolvido
> > dinamicamente, mas estaticamente, em tempo de execucao.
>
> Polimorfismo verdadeiro, polimorfismo simples, polimorfismo
> (ponto final). Ha outros nomes, provavelmente. Porem, uma
> interpretacao deste trecho acima me leva a crer que o autor
> nao descarta a existencia de outros tipos de polimorfismo.
>
> > Resumindo:
> > -> Polimorfismo tem a ver com heranca
> > -> Polimorfismo tem a ver com fazer:
>
> Como eu disse, muita gente acha que o conceito de polimorfismo
> eh um pouco mais abrangente. Repito, ate pouco tempo atras (algumas
> horas, talvez), eu nao considerava overloading polimorfismo.
> Continuo achando estranho o conceito, mas eu nao diria que eh errado.
> Talvez polimorfismo tenha a ver com "muitas formas", o que nao
> descarta overloading. Vou perguntar novamente, alguem sabe o que
> Bertrand Meyer diz a respeito do assunto?
>
> > Os materiais citados sao propriedade intelectual de seus autores.
> > Se alguem ainda tiver duvida sobre esses conceitos basicos da OOP,
> > faca um curso da Sun, pq pra isso eles sao bons (aprender Java
> > mesmo eh mais complicado...)
>
> Talvez o curso nao seja necessario, ate mesmo porque esta nao
> eh uma duvida basica. Eh uma questao conceitual que, ate onde
> eu posso ver, esta longe de ser uma unanimidade.
>
> Abraco,
>
> Andre Mendonca
> [EMAIL PROTECTED]
>
>
>
>
> -- 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]
> -
>
>



-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-20 Thread Sven van ´t Veer
Não concordamos com este explicação pelo seguinte.

Polimorfismo é um dos conceitos mais importante de OOP. O que é Polimorfismo,
é a capacidade de uma referencia de um superclasse (ou interface) conter
a referência de uma subclasse que inclui o conceito de ´Dynamic Binding´
ou a possibilidade de escolher o methodo certo para invocar at runtime.

Com overloading o progammador escolha qual versão do methodo dentro da mesma
classe tem que ser executado num certo momento durante a executação do programma.
Isso NÂO È polimorfismo.

veja:

interface a{
    foo();
}

interface b extends a{
    bar();
}

class c implements b{
    foo(){}
}

class d extends c{
    bar(){}
}

class e extends d{
    foo(){}
    bar(){}
}

class q{
    a e = new e();
    e.foo();  // foo chamada da classe e
    e = new c();
    e.foo(); //foo chamada da classe c 
// esses são do seu exemplo.. O compilador sabe o que receberá
    doFoo(a x){
        a.foo() // nesse methodo, somente sabemos que a classe que foi recebido
é uma implementação da interface a O foo() será escolhido at runtime, não
é possivel de fazer optimação
  }
}

apesar que a classe 
Christian Rauh wrote:
[EMAIL PROTECTED]">Caro Michael,Estou entrando tarde nesta discussão. Não sei qual é o pontoexato 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 programminglanguages is overloading". pg. 185Como a referencia [Budd] é mais importante do que [Eckel], temosque: overloading é polimorfismo. O que me parece que é ocontrá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 defaultarguments, 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âmicaPorém, [Budd] diz logo a frente na seção 13.2 sobre overloadingque:"The facts that the compiler can often determine the correct[overloading] function at compile time (in a strongly typedlanguage), and can generate only a single code sequence, aresimply optimizations"Ou seja, o fato de que o compilador pode descobrir a funçãocorreta em linguagem fortemente tipadas (como C++) e fazerlinkagem estática é simplesmente um otimização. Assim, o C++ estásimplesmente otimizando uma característica orientada a objeto.Obrigado,Christian RauhNewTradeReferências:[Budd] Budd, Timothy. "An Introduction to Object-OrientedProgamming", 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.htmregras da lista: http://www.soujava.org.br/regras.htmpara sair da lista: envie email para [EMAIL PROTECTED] -




Re: [java-list] Polimorfismo

2001-03-20 Thread Christian Rauh - Home
ial a questão de mensagens pois já que vamos
tratar de OO vamos para as origens!

Christian Rauh

> []'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] 
-




Re: [java-list] Polimorfismo

2001-03-20 Thread Christian Rauh - Home

Caro Sven,

Sven van ´t Veer wrote:
> 
> Não concordamos com este explicação pelo seguinte.
> 
> Polimorfismo é um dos conceitos mais importante de OOP. O que é
> Polimorfismo, é a capacidade de uma referencia de um superclasse (ou
> interface) conter a referência de uma subclasse que inclui o conceito
> de ´Dynamic Binding´ ou a possibilidade de escolher o methodo certo
> para invocar at runtime.

Esta definição é pouco abrangente, veja o meu outro email.

> Com overloading o progammador escolha qual versão do methodo dentro da
> mesma classe tem que ser executado num certo momento durante a
> executação do programma. Isso NÂO È polimorfismo.

É sim, estou assumindo que além da classe a ser utilizada, os parâmetros
passados também fazem parte da escolha da resposta a uma mensagem
(invocação de método).
 
Christian Rauh

-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-21 Thread Sven van ´t Veer

Mister M wrote:

> 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);

Isso não é plenamente verdade. Existem alguns implementações de C que 
suportam overloading, mas não é portavel. Ansi & K&R C não supportam 
overloading. Por isso existem por exemplo as familhas de printf & scanf:
printf
vprintf
sprintf
fprintf
vfprintf

etc.

Detalhe, compilando o dódigo acima com varias compiladores C++ 
provavelmente não reclamam e compilam, mesmo sendo código C. Outro 
detalhe, C até tem alguns ´jeitinhos´de criar objetos. O struct e union 
aceitam function pointers. Na verdade o Stroustrup quando crio C++ usava 
o struct como base para classes.

Sven


-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-21 Thread Cleto Henrique Andrade Silva

Caros,

- Polimorfismo(várias formas) significa um mesmo método poder ter
comportamentos diferentes em classes diferentes.

- A assinatura(identificação) de um método é formada pelo seu nome e seus
parâmetros e não somente pelo seu nome.

Considerando as duas afirmações acima podemos concluir que sobrecarga
não é polimorfismo, pois, quando fazemos sobrecarga estamos tratando de
métodos diferentes apesar de terem o mesmo nome. Dois métodos
sobrecarregados têm o mesmo nome, porém, não são a mesma mensagem. Portanto,
comportamentos diferentes para métodos diferentes me parece uma coisa óbvia.

Abraços.


-- 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] 
-




RE: [java-list] Polimorfismo

2001-03-21 Thread Jorge Martins



Sven,
 
Concordo com você e ainda digo mais. Conceitualmente, polimorfirsmo é a 
capacidade dos objetos responderem diferenciadamente a mesma mensagem (ou 
estímulo) de acordo com sua classe no momento.
 
Dois 
métodos com assinaturas diferentes não podem ser considerados a mesma mensagem. 
Apenas possuem o mesmo nome (ou token) com o fim de facilitar o entendimento do 
programador, mas em momento algum representam a mesma 
mensagem.
 
abraços
 
Jorge
 
-Original Message-From: Sven van ´t Veer 
[mailto:[EMAIL PROTECTED]]Sent: terça-feira, 20 de março de 2001 
17:37To: [EMAIL PROTECTED]Subject: Re: [java-list] 
PolimorfismoNão concordamos com este explicação pelo 
seguinte.Polimorfismo é um dos conceitos mais importante de OOP. O que é 
Polimorfismo, é a capacidade de uma referencia de um superclasse (ou interface) 
conter a referência de uma subclasse que inclui o conceito de ´Dynamic Binding´ 
ou a possibilidade de escolher o methodo certo para invocar at 
runtime.Com overloading o progammador escolha qual versão do methodo 
dentro da mesma classe tem que ser executado num certo momento durante a 
executação do programma. Isso NÂO È polimorfismo.veja:interface 
a{   foo();}interface b extends a{   
bar();}class c implements b{   
foo(){}}class d extends c{   bar(){}}class 
e extends d{   foo(){}   bar(){}}class 
q{   a e = new e();   e.foo();  // foo chamada 
da classe e   e = new c();   e.foo(); //foo chamada 
da classe c // esses são do seu exemplo.. O compilador sabe o que 
receberá   doFoo(a x){       a.foo() // 
nesse methodo, somente sabemos que a classe que foi recebido é uma implementação 
da interface a O foo() será escolhido at runtime, não é possivel de fazer 
optimação  }}apesar que a classe Christian Rauh 
wrote:
[EMAIL PROTECTED]" type="cite">Caro Michael,Estou entrando tarde nesta discussão. Não sei qual é o pontoexato 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 programminglanguages is overloading". pg. 185Como a referencia [Budd] é mais importante do que [Eckel], temosque: overloading é polimorfismo. O que me parece que é ocontrá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 defaultarguments, 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âmicaPorém, [Budd] diz logo a frente na seção 13.2 sobre overloadingque:"The facts that the compiler can often determine the correct[overloading] function at compile time (in a strongly typedlanguage), and can generate only a single code sequence, aresimply optimizations"Ou seja, o fato de que o compilador pode descobrir a funçãocorreta em linguagem fortemente tipadas (como C++) e fazerlinkagem estática é simplesmente um otimização. Assim, o C++ estásimplesmente otimizando uma característica orientada a objeto.Obrigado,Christian RauhNewTradeReferências:[Budd] Budd, Timothy. "An Introduction to Object-OrientedProgamming", 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.htmregras da lista: http://www.soujava.org.br/regras.htmpara sair da lista: envie email para [EMAIL PROTECTED] -


Re: [java-list] Polimorfismo

2001-03-21 Thread Christian Rauh

Caro Cleto,

Cleto Henrique Andrade Silva wrote:
> 
> - Polimorfismo(várias formas) significa um mesmo método poder ter
> comportamentos diferentes em classes diferentes.

Ou:

 - Polimorfismo(várias formas) significa um mesmo método poder ter
 comportamentos diferentes.

> - A assinatura(identificação) de um método é formada pelo seu nome e seus
> parâmetros e não somente pelo seu nome.
> 
> Considerando as duas afirmações acima podemos concluir que sobrecarga
> não é polimorfismo, pois, quando fazemos sobrecarga estamos tratando de
> métodos diferentes apesar de terem o mesmo nome. Dois métodos
> sobrecarregados têm o mesmo nome, porém, não são a mesma mensagem. Portanto,
> comportamentos diferentes para métodos diferentes me parece uma coisa óbvia.

Considerando a minha primeira afirmação podemos concluir que sobrecarga é
polimorfismo, pois, quando fazemos sobrecarga estamos tratando de funcções
diferentes que implementam o mesmo método. Dois métodos sobrecarregados têm
o mesmo nome e são a mesma mensagem com parâmetros diferentes. Portanto,
comportamentos diferentes parao mesmo método, me parece uma coisa óbvia.

Christian

-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-21 Thread Christian Rauh

Caro Jorge,

> Jorge Martins wrote:
> 
> Concordo com você e ainda digo mais. Conceitualmente, polimorfirsmo é a
> capacidade dos objetos responderem diferenciadamente a mesma mensagem (ou
> estímulo) de acordo com sua classe no momento.

De acordo com a classe e parâmetros.
 
> Dois métodos com assinaturas diferentes não podem ser considerados a
> mesma mensagem.

Porque não?

> Apenas possuem o mesmo nome (ou token) com o fim de
> facilitar o entendimento do programador, mas em momento algum representam
> a mesma mensagem.

Representam sim, afinal é comum fazermos overloading para justamente tratar
a mesma mensagem de maneira diferente de acordo com os métodos. Por
exemplo, formatar uma data com o padrão usual ou com um padrão
especificado.

Christian

-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-21 Thread Cleto Henrique Andrade Silva

Caro Christian,

você foi contra a segunda afirmativa quando disse "Dois métodos
sobrecarregados têm
o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
identificador da mensagem é formado pelo nome mais os parâmetros, então,
dois métodos sobrecarregados com parâmetros diferentes não podem ser a mesma
mensagem.

Cleto.

- Original Message -
From: "Christian Rauh" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, March 21, 2001 2:23 PM
Subject: Re: [java-list] Polimorfismo


> Caro Cleto,
>
> Cleto Henrique Andrade Silva wrote:
> >
> > - Polimorfismo(várias formas) significa um mesmo método poder ter
> > comportamentos diferentes em classes diferentes.
>
> Ou:
>
>  - Polimorfismo(várias formas) significa um mesmo método poder ter
>  comportamentos diferentes.
>
> > - A assinatura(identificação) de um método é formada pelo seu nome e
seus
> > parâmetros e não somente pelo seu nome.
> >
> > Considerando as duas afirmações acima podemos concluir que
sobrecarga
> > não é polimorfismo, pois, quando fazemos sobrecarga estamos tratando de
> > métodos diferentes apesar de terem o mesmo nome. Dois métodos
> > sobrecarregados têm o mesmo nome, porém, não são a mesma mensagem.
Portanto,
> > comportamentos diferentes para métodos diferentes me parece uma coisa
óbvia.
>
> Considerando a minha primeira afirmação podemos concluir que sobrecarga é
> polimorfismo, pois, quando fazemos sobrecarga estamos tratando de funcções
> diferentes que implementam o mesmo método. Dois métodos sobrecarregados
têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes. Portanto,
> comportamentos diferentes parao mesmo método, me parece uma coisa óbvia.
>
> Christian
>
> -- 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]
> -


-- 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] 
-




RE: [java-list] Polimorfismo

2001-03-21 Thread Jorge Martins

Christian 

Pois não é o mesmo estímulo. Uma mensagem é definida pela assinatura da
mesma. Se há uma assinatura diferente, há uma mensagem diferente. O nome da
função não é suficiente pois assinatura é composta pelo nome da função +
tipos dos parâmetros.

No seu exemplo, para formatar data, você mesmo denunciou que são mensagens
diferentes. Dizer "formate data com padrão usual" e "formate data com este
padrão" são coisas diferentes. Seria polimorfismo se eu disse "formate data"
e o OBJETO tomasse a decisão da formatação. 

Perceba o conceito, eu falaria para o objeto uma só mensagem e ESTE TOMARIA
A DECISÃO DO PROCEDIMENTO. Ou seja, ele se comportaria polimorficamente a
partir de um mesmo estímulo, ou mensagem.

abraços

Jorge

-Original Message-
From: Christian Rauh [mailto:[EMAIL PROTECTED]]
Sent: quarta-feira, 21 de março de 2001 14:25
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Polimorfismo


Caro Jorge,

> Jorge Martins wrote:
> 
> Concordo com você e ainda digo mais. Conceitualmente, polimorfirsmo é a
> capacidade dos objetos responderem diferenciadamente a mesma mensagem (ou
> estímulo) de acordo com sua classe no momento.

De acordo com a classe e parâmetros.
 
> Dois métodos com assinaturas diferentes não podem ser considerados a
> mesma mensagem.

Porque não?

> Apenas possuem o mesmo nome (ou token) com o fim de
> facilitar o entendimento do programador, mas em momento algum representam
> a mesma mensagem.

Representam sim, afinal é comum fazermos overloading para justamente tratar
a mesma mensagem de maneira diferente de acordo com os métodos. Por
exemplo, formatar uma data com o padrão usual ou com um padrão
especificado.

Christian

-- 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] 
-

-- 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]
-




Re: [java-list] Polimorfismo

2001-03-22 Thread Christian Rauh

Cleto Henrique Andrade Silva wrote:
> 
> você foi contra a segunda afirmativa quando disse "Dois métodos
> sobrecarregados têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
> identificador da mensagem é formado pelo nome mais os parâmetros, então,
> dois métodos sobrecarregados com parâmetros diferentes não podem ser a mesma
> mensagem.

Eu queria dizer: "Dois métodos sobrecarregados têm o mesmo nome e são a
responsta a mesma mensagem quando recebida com parâmetros diferentes."

Christian

-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-22 Thread Christian Rauh

Caro Jorge,

Jorge Martins wrote:
> 
> Pois não é o mesmo estímulo. Uma mensagem é definida pela assinatura da
> mesma. Se há uma assinatura diferente, há uma mensagem diferente. O nome da
> função não é suficiente pois assinatura é composta pelo nome da função +
> tipos dos parâmetros.

A mensagem para mim é simplesmente a mensagem e os parâmetros não fazem
parte dela. Veja, por exemplo, o Smalltalk onde você pode chamar qualquer
método com qualquer número e tipo de parâmetro.

> No seu exemplo, para formatar data, você mesmo denunciou que são mensagens
> diferentes. Dizer "formate data com padrão usual" e "formate data com este
> padrão" são coisas diferentes. Seria polimorfismo se eu disse "formate data"
> e o OBJETO tomasse a decisão da formatação.

Na verdade eu escrevi mal o que eu queria dizer. Eram para ser, como você
bem observou, "formate e data" e "formate a data com este padrão", onde no
primeiro caso a data é formatada com um padrão usual e no segundo com um
padrão diferente do usual. Este comportemente é bastante usado quando se
faz um método que tem defaults para os parâmetros de outro método. Ambos
respondem a mesma mensagem para parâmetros diferentes.

> Perceba o conceito, eu falaria para o objeto uma só mensagem e ESTE TOMARIA
> A DECISÃO DO PROCEDIMENTO. Ou seja, ele se comportaria polimorficamente a
> partir de um mesmo estímulo, ou mensagem.

Exato! E esta decisão seria baseada na classe e parâmetros. (Contrariamente
a somente na classe como o Michael, Sven e você, entre outros, defendem).

Até mais,

Chrsitian Rauh

-- 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] 
-




RES: [java-list] Polimorfismo

2001-03-22 Thread marcon

Pessoal,
Vamos descer um pouco mais o nível (da linguagem é claro): Quando um fonte é
compilado e existe o overloading (ex. int test(int a) e int test(int b, char
c) ) o método test é renomeado e no assembly passam a ser métodos diferentes
com nomes diferentes então é como se vc tivesse criado 2 métodos. Assim isso
não é Polimorfismo (no novo conceito de orientação a objeto), simplesmente
porque ele não assume muitas formas em tempo de execução, ele se transforma
em outro método.

Abração
Marco




-Mensagem original-
De: Andre Mendonca [mailto:[EMAIL PROTECTED]]
Enviada em: terça-feira, 20 de março de 2001 16:33
Para: [EMAIL PROTECTED]
Assunto: RE: [java-list] Polimorfismo



Mister M,

Ate onde eu pude ver, muitos autores consideram overloading
um tipo de polimorfismo. Tavez seja uma questao de definicao,
quase como uma preferencia pessoal, que na pratica pouco
afeta a maneira como programamos.

> A capacidade de um objeto decidir qual metodo aplicara
> a si mesmo, dependendo de onde se encontra na hierarquia
> de heranca, e chamda de polimorfismo...

Esta eh a definicao mais conhecida de polimorfismo. Inclusive
eh a unica que eu considerava correta ate o comeco desta
discussao.

> O polimorfismo em uma hierarquia de heranca as vezes eh
> chamado de POLIMORFISMO VERDADEIRO, distinguindo-o do tipo
> mais limitado de sobrecarga de nome que nao eh resolvido
> dinamicamente, mas estaticamente, em tempo de execucao.

Polimorfismo verdadeiro, polimorfismo simples, polimorfismo
(ponto final). Ha outros nomes, provavelmente. Porem, uma
interpretacao deste trecho acima me leva a crer que o autor
nao descarta a existencia de outros tipos de polimorfismo.

> Resumindo:
> -> Polimorfismo tem a ver com heranca
> -> Polimorfismo tem a ver com fazer:

Como eu disse, muita gente acha que o conceito de polimorfismo
eh um pouco mais abrangente. Repito, ate pouco tempo atras (algumas
horas, talvez), eu nao considerava overloading polimorfismo.
Continuo achando estranho o conceito, mas eu nao diria que eh errado.
Talvez polimorfismo tenha a ver com "muitas formas", o que nao
descarta overloading. Vou perguntar novamente, alguem sabe o que
Bertrand Meyer diz a respeito do assunto?

> Os materiais citados sao propriedade intelectual de seus autores.
> Se alguem ainda tiver duvida sobre esses conceitos basicos da OOP,
> faca um curso da Sun, pq pra isso eles sao bons (aprender Java
> mesmo eh mais complicado...)

Talvez o curso nao seja necessario, ate mesmo porque esta nao
eh uma duvida basica. Eh uma questao conceitual que, ate onde
eu posso ver, esta longe de ser uma unanimidade.

Abraco,

Andre Mendonca
[EMAIL PROTECTED]




-- 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]
-


-- 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] 
-




Re: [java-list] Polimorfismo

2001-03-22 Thread Sven van ´t Veer

Cleto Henrique Andrade Silva wrote:

> Caro Christian,
> 
> você foi contra a segunda afirmativa quando disse "Dois métodos
> sobrecarregados têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
> identificador da mensagem é formado pelo nome mais os parâmetros, então,
> dois métodos sobrecarregados com parâmetros diferentes não podem ser a mesma
> mensagem.

Está completamente certo!

Sven


-- 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] 
-




RES: [java-list] Polimorfismo

2001-03-23 Thread Alexandre Rodrigues Gomes

Assembly ?  Na compilação são gerados bytecodes que por sua vez, serão
interpretados pelas virtual machines de cada plataforma.

By Alê!

-Mensagem original-
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Enviada em: quinta-feira, 22 de março de 2001 9:22
Para: [EMAIL PROTECTED]
Assunto: RES: [java-list] Polimorfismo


Pessoal,
Vamos descer um pouco mais o nível (da linguagem é claro): Quando um fonte é
compilado e existe o overloading (ex. int test(int a) e int test(int b, char
c) ) o método test é renomeado e no assembly passam a ser métodos diferentes
com nomes diferentes então é como se vc tivesse criado 2 métodos. Assim isso
não é Polimorfismo (no novo conceito de orientação a objeto), simplesmente
porque ele não assume muitas formas em tempo de execução, ele se transforma
em outro método.

Abração
Marco




-Mensagem original-
De: Andre Mendonca [mailto:[EMAIL PROTECTED]]
Enviada em: terça-feira, 20 de março de 2001 16:33
Para: [EMAIL PROTECTED]
Assunto: RE: [java-list] Polimorfismo



Mister M,

Ate onde eu pude ver, muitos autores consideram overloading
um tipo de polimorfismo. Tavez seja uma questao de definicao,
quase como uma preferencia pessoal, que na pratica pouco
afeta a maneira como programamos.

> A capacidade de um objeto decidir qual metodo aplicara
> a si mesmo, dependendo de onde se encontra na hierarquia
> de heranca, e chamda de polimorfismo...

Esta eh a definicao mais conhecida de polimorfismo. Inclusive
eh a unica que eu considerava correta ate o comeco desta
discussao.

> O polimorfismo em uma hierarquia de heranca as vezes eh
> chamado de POLIMORFISMO VERDADEIRO, distinguindo-o do tipo
> mais limitado de sobrecarga de nome que nao eh resolvido
> dinamicamente, mas estaticamente, em tempo de execucao.

Polimorfismo verdadeiro, polimorfismo simples, polimorfismo
(ponto final). Ha outros nomes, provavelmente. Porem, uma
interpretacao deste trecho acima me leva a crer que o autor
nao descarta a existencia de outros tipos de polimorfismo.

> Resumindo:
> -> Polimorfismo tem a ver com heranca
> -> Polimorfismo tem a ver com fazer:

Como eu disse, muita gente acha que o conceito de polimorfismo
eh um pouco mais abrangente. Repito, ate pouco tempo atras (algumas
horas, talvez), eu nao considerava overloading polimorfismo.
Continuo achando estranho o conceito, mas eu nao diria que eh errado.
Talvez polimorfismo tenha a ver com "muitas formas", o que nao
descarta overloading. Vou perguntar novamente, alguem sabe o que
Bertrand Meyer diz a respeito do assunto?

> Os materiais citados sao propriedade intelectual de seus autores.
> Se alguem ainda tiver duvida sobre esses conceitos basicos da OOP,
> faca um curso da Sun, pq pra isso eles sao bons (aprender Java
> mesmo eh mais complicado...)

Talvez o curso nao seja necessario, ate mesmo porque esta nao
eh uma duvida basica. Eh uma questao conceitual que, ate onde
eu posso ver, esta longe de ser uma unanimidade.

Abraco,

Andre Mendonca
[EMAIL PROTECTED]




-- 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]
-


-- 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] 
-

-- 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]
-




Re: [java-list] Polimorfismo

2001-04-26 Thread Sven van ´t Veer
public class CLTest {

  public foobar() {
  }

  public static void main(String[] args) {
    try{
      ClassLoader cl;
      Class c;
      cl = ClassLoader.getSystemClassLoader();
      c = cl.loadClass("foo");
      base b = (base)c.newInstance();
      System.out.println(b.string());
      c = cl.loadClass("bar");
      b = (base)c.newInstance();
      System.out.println(b.string());
    } catch (Exception ex){
      ex.printStackTrace();
    }
  }
}

abstract class base{
  abstract public String string();
}
class foo extends base{
  public String string(){
    return "This is foo talking";
  }
}
class bar extends base{
  public String string(){
    return "This is bar talking";
  }
}

Kleber Rodrigo de Carvalho wrote:
000801c0cc1c$302c3cd0$230a0a0a@CarlaPerez">
  PessoALL !!!
  Alguém tem algum exemplo de polimorfismo para eu 
estudar..
   
  OBS: sei que esta pergunta é 
basica..
   
  t+
  obrigado
   
   
   
  
  


Re: [java-list] Polimorfismo

2001-04-26 Thread Kleber Rodrigo de Carvalho



Obrigado
 
[] 'sKleber Rodrigo de CarvalhoSoftware 
Engineer

  - Original Message - 
  From: 
  Sven van ´t Veer 
  To: [EMAIL PROTECTED] 
  Sent: Wednesday, April 25, 2001 8:36 
  AM
  Subject: Re: [java-list] 
  Polimorfismo
  public class CLTest {  public foobar() {  
  }  public static void main(String[] args) {   
  try{     ClassLoader cl;     Class 
  c;     cl = 
  ClassLoader.getSystemClassLoader();     c = 
  cl.loadClass("foo");     base b = 
  (base)c.newInstance();     
  System.out.println(b.string());     c = 
  cl.loadClass("bar");     b = 
  (base)c.newInstance();     
  System.out.println(b.string());   } catch (Exception 
  ex){     ex.printStackTrace();   }  
  }}abstract class base{  abstract public String 
  string();}class foo extends base{  public String 
  string(){   return "This is foo talking";  
  }}class bar extends base{  public String 
  string(){   return "This is bar talking";  
  }}Kleber Rodrigo de Carvalho wrote:
  000801c0cc1c$302c3cd0$230a0a0a@CarlaPerez" 
type="cite">PessoALL !!!
Alguém tem algum exemplo de polimorfismo para 
eu estudar..
 
OBS: sei que esta pergunta é 
basica..
 
t+
obrigado
 
 
 


Re: [java-list] polimorfismo ..?

2003-02-02 Thread Zforum
Não sei qual é o contexto do capítulo desse livro que você está lendo, mas
acho que o autor está querendo mostrar apenas que é possível chamar métodos
de um objeto através do a chamada virtual de um método (Virtual Method
Invocation).

A variável "ref" foi criada com o intuito de "apontar" para um objeto da
classe "Employee", mas ao contrário disso recebeu a referência para um
objeto da classe "Boss", que é uma subclasse de "Employee".

Como as duas classes (Boss e Employee) possuem o método "toString", é
possível chamar o método através da variável de referência da superclasse.

Suponha que a classe "Boss" possuísse um método "teste()" e a classe
"Employee" não possuísse esse método. Se você tentar chamar o método
"teste()" a partir da variável de referência "ref", não vai conseguir.

Nesse trecho de código, o método "toString" chamado, é o método referente ao
"objeto" da classe "Boss" para a qual a variável "ref" está apontando, e não
para o método "toString" da classe "Employee".

A váriável de referência "ref" é da Classe Employee, mas o conteúdo para o
qual ela está apontando é de um objeto da classe "Boss".

Espero ter ajudado.

Zanata, Adalberto - Espaço Reverso Tecnologia
[www.espacoreverso.com.br/a.zanata]

- Original Message -
From: "everson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 24, 2003 1:15 PM
Subject: [java-list] polimorfismo ..?



olá lista.

To lendo o Java como Programar - Deitel, cap 9, pág 409 à 414. Arquivo
Test.java (413). A dúvida é:
pq que ao invés de fazer:
1)

Employee ref;  // superclass reference
Boss b = new Boss( "John", "Smith", 800.00 );
 ref = b;
output += ref.toString() + " earned $" +   (como está no livro)

não fez direto :
2)
output += b.toString() + " earned $" +   (minha dúvida)

Já q no 1) vai ser chamado o metodo toString da classe Boss, como no 2) ...
Existe alguma diferença entre
um e outro ???




-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-




Re: [java-list] polimorfismo ..?

2003-02-03 Thread Lincoln Masao Muraoka Junior
Bom,

Concordo que as duas chamadas vão chamar o mesmo método. Logo porque não
chamar o método pela subclasse direto né?
Eu enxergo no mínimo duas utilizações interessante para isso.
Imagine que você crie uma super classe "Sup" e 20 subclasses "Sub1",
"Sub2" ... "Sub20". A classe Sup tem um método save() que todas as
subclasses sobreescrevem, que é responsável pela persistência do objeto.
Agora suponha que você, durante o processamento de um programa crie uma
instância de cada uma das subclasses, e ao final do processamento precisa
chamar o método save de todo mundo. Vai te dar um pouquinho de trabalho
chamar o save de cada um deles.
Ao invés disso, você poderia estar criando um array de objetos Sup, como
Sup AAA [].
Dentro de cada linha do array, você colocaria uma referência a cada um
dos objetos de subclasse, e ao final do processamento, poderia chamar um for
e a cada linha do for, vc chama o metodo save da super classe, algo como:
for(int i = 0 ; i < AAA.lenght; i++){
AAA[i].save();
}
Como o método save chamado seria indiretamente o da subclasse, você
teria o processamento exatamente com esperado, sem precisar chamar o método
save para cada um dos tipos de subclasse existente, economizando escrita.
Não sei se você não perde muito em processamento em função do for, porém com
certeza você economiza código, podendo inclusive dessa forma automatizar
alguns processos, pensando assim de forma abstrata.
Um outro exemplo é que você poderia utilizar o conceito de factory dessa
maneira também. Imagine que você tem uma classe que trata Funcionalidades de
um sistema. Assim, você cria uma super classe Funcionalidade, que possui
alguns métodos padrão e a cada nova funcionalidade, você cria uma classe que
extende a super classe Funcionalidade. Assim, você poderia ter uma classe
tratadora das funcionalidades que trata uma funcionalidade genérica, e
sempre que adicionar uma nova funcionalidade, basta criar uma nova classe
que extende a classe Funcionalidade e registra-la em um arquivo de
configurações, por exemplo. A classe tratadora sempre trabalha com os
metodos de superclasse, de forma que você não precisa nunca mais mexer nela,
aumentando bastante a reutilização dos seus componentes bem como
escalabilidade.

ETA
[]s
Lincoln Masao Muraoka Junior
Analista Programador
ASTI Tecnologia - Unidade de Soluções
Tel.: 55 11 3031-0069 r. 232
[EMAIL PROTECTED]
www.astitecnologia.com.br




- Original Message -
From: "everson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 24, 2003 2:15 PM
Subject: [java-list] polimorfismo ..?



olá lista.

To lendo o Java como Programar - Deitel, cap 9, pág 409 à 414. Arquivo
Test.java (413). A dúvida é:
pq que ao invés de fazer:
1)

Employee ref;  // superclass reference
Boss b = new Boss( "John", "Smith", 800.00 );
 ref = b;
output += ref.toString() + " earned $" +   (como está no livro)

não fez direto :
2)
output += b.toString() + " earned $" +   (minha dúvida)

Já q no 1) vai ser chamado o metodo toString da classe Boss, como no 2) ...
Existe alguma diferença entre
um e outro ???




-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-


-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




Re: [java-list] polimorfismo ..?

2003-02-05 Thread Daniel Taranta
Na verdade esse exemplo do livro apenas mostrou que vc pode referenciar uma
subclasse com uma referencia da superclasse.

Sou totalmente inexperiente mas sei que isso na prática tem várias funções,
por exemplo, quando vc usa um JScrollPanel vc passa como argumento para o
construtor da classe um JComponent, a classe JComponent é superclasse da
maioria dos componentes swing, portanto em um JScrollPanel vc pode colocar a
maioria dos componentes swing, porque a referência é para um JComponent,
portanto qualquer subclasse pode ser referenciada por ele.
Se não fosse essa tecnica a classe JScrollPanel teria que ter vários
construtores sobrecarregados, cada um para um possível componente swing que
estaria no JScrollPanel, e cada um desses construtores faria a mesma coisa!

PS.: caso ainda não tenha visto a classe JScrollPanel, vc a vera no cap 12,
na página 555, em um exemplo de JList

- Original Message -
From: "Lincoln Masao Muraoka Junior" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, February 03, 2003 9:15 AM
Subject: Re: [java-list] polimorfismo ..?


Bom,

Concordo que as duas chamadas vão chamar o mesmo método. Logo porque não
chamar o método pela subclasse direto né?
Eu enxergo no mínimo duas utilizações interessante para isso.
Imagine que você crie uma super classe "Sup" e 20 subclasses "Sub1",
"Sub2" ... "Sub20". A classe Sup tem um método save() que todas as
subclasses sobreescrevem, que é responsável pela persistência do objeto.
Agora suponha que você, durante o processamento de um programa crie uma
instância de cada uma das subclasses, e ao final do processamento precisa
chamar o método save de todo mundo. Vai te dar um pouquinho de trabalho
chamar o save de cada um deles.
Ao invés disso, você poderia estar criando um array de objetos Sup, como
Sup AAA [].
Dentro de cada linha do array, você colocaria uma referência a cada um
dos objetos de subclasse, e ao final do processamento, poderia chamar um for
e a cada linha do for, vc chama o metodo save da super classe, algo como:
for(int i = 0 ; i < AAA.lenght; i++){
AAA[i].save();
}
Como o método save chamado seria indiretamente o da subclasse, você
teria o processamento exatamente com esperado, sem precisar chamar o método
save para cada um dos tipos de subclasse existente, economizando escrita.
Não sei se você não perde muito em processamento em função do for, porém com
certeza você economiza código, podendo inclusive dessa forma automatizar
alguns processos, pensando assim de forma abstrata.
Um outro exemplo é que você poderia utilizar o conceito de factory dessa
maneira também. Imagine que você tem uma classe que trata Funcionalidades de
um sistema. Assim, você cria uma super classe Funcionalidade, que possui
alguns métodos padrão e a cada nova funcionalidade, você cria uma classe que
extende a super classe Funcionalidade. Assim, você poderia ter uma classe
tratadora das funcionalidades que trata uma funcionalidade genérica, e
sempre que adicionar uma nova funcionalidade, basta criar uma nova classe
que extende a classe Funcionalidade e registra-la em um arquivo de
configurações, por exemplo. A classe tratadora sempre trabalha com os
metodos de superclasse, de forma que você não precisa nunca mais mexer nela,
aumentando bastante a reutilização dos seus componentes bem como
escalabilidade.

ETA
[]s
Lincoln Masao Muraoka Junior
Analista Programador
ASTI Tecnologia - Unidade de Soluções
Tel.: 55 11 3031-0069 r. 232
[EMAIL PROTECTED]
www.astitecnologia.com.br




- Original Message -
From: "everson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 24, 2003 2:15 PM
Subject: [java-list] polimorfismo ..?



olá lista.

To lendo o Java como Programar - Deitel, cap 9, pág 409 à 414. Arquivo
Test.java (413). A dúvida é:
pq que ao invés de fazer:
1)

Employee ref;  // superclass reference
Boss b = new Boss( "John", "Smith", 800.00 );
 ref = b;
output += ref.toString() + " earned $" +   (como está no livro)

não fez direto :
2)
output += b.toString() + " earned $" +   (minha dúvida)

Já q no 1) vai ser chamado o metodo toString da classe Boss, como no 2) ...
Existe alguma diferença entre
um e outro ???




-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-


-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/

Re: RES: [java-list] Polimorfismo

2001-03-08 Thread Mister M

Na verdade, polimorfismo eh o q o Sven explicou no e-mail anterior, ou seja, 
estah relacionado com o Dynamic Binding. Isso que estah explicado no e-mail 
do Alexandre (embora eu jah tenha visto milhares de vezes erradamente, o q 
significa q algum livro deve ter dito isso) eh o overloading, ou seja, qdo 
um metodo tem diversas formas de ser chamado por causa da lista de 
parametros e, por isso, pode tomar n acoes diferentes.
Vou usar o exemplo classico do livro do Bruce Eckel, Thinking in Java:

Imagine q vc tenha uma classe FormaGeometrica + ou - assim

class FormaGeometrica {
   public void desenha() {
  System.out.println("Nao implementado...");
   }
...
...
}

Agora imagine uma subclasse assim:

class Circulo extends FormaGeometrica {
   public void desenha() {
  // codigo para desenhar circulo...
   }
...
...
}

E outra assim:

class CirculoPreenchido extends Circulo {
   public void desenha() {
  super.desenha();
  // codigo para preencher circulo...
   }
...
...
}


Qdo vc faz:

FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();

imagine que o metodo retorna qualquer forma geometrica registrada no sistema 
(Circulo, CirculoPreenchido, FormaGeometrica e outras subclasses). Se este 
metodo foi declarado como :

class FabricaDeFormas {
   public static FormaGeometrica geraFormaAleatoria() {
  //codigo pra gerar forma aleatoria
   }
}

ele pode retornar Circulo, por exemplo, q como "extends" FormaGeometrica EH 
uma FormaGeometrica.
Voltando a linha do exemplo:


FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
forma.desenha();


vc nao pode dizer o q este metodo ira fazer. Ele pode tanto emitir a 
mensagem q nao esta implementado, como pintar um circulo ou ainda pintar um 
circulo e preenche-lo. Esta eh a beleza do polimorfismo. O metodo da classe 
q vc realmente retornou do geraFormaAleatoria() e q vai ser chamado. Baixe o 
Thinking In Java (em ingles) do site do Bruce (www.bruceeckel.com).

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

>From: Alexandre Rodrigues Gomes <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>Subject: RES: [java-list] Polimorfismo
>Date: Wed, 7 Mar 2001 18:01:20 -0300
>
>André, por poliformismo podemos que concluir que seja algo com muitas
>formas, certo ?
>Este algo de que estamos falando são os métodos, ou seja, polimorfismo é a
>propriedade para que um método assuma várias formas.
>Por exemplo, considere um método que faça um pesquisa por um cliente numa
>base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
>pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
>necessidade de criar dois métodos distindos:
>
>findClientByName(String name) e
>findClientByCPF(long cpf)
>
>Com o polimorfismo, isto não é necessário, o que torna sua solução mais
>transparente e elegante:
>
>findClient(String name) e
>findClient(long cpf)
>
>suponha também que desejamos criar um método para pesquisa que faça a
>interseção entre idade e naturalidade. Logo, construiríamos um método com a
>seguinte assinatura:
>
>findClient(Date idade, String natural)
>
>e todos estes métodos poderiam conviver numa mesma classe, sem problemas.
>
>By Alê!
>
>
>-----Mensagem original-----
>De: Yurion "André [mailto:[EMAIL PROTECTED]]
>Enviada em: quarta-feira, 7 de março de 2001 14:44
>Para: [EMAIL PROTECTED]
>Assunto: [java-list] Polimorfismo
>
>
>Caros amigos,
>
>Estou estudando POO e estou com algumas dúvidas sobre
>polimorfismo.
>A única coisa que sei sobre o assunto é que
>está propriedade da OO permite que uma classe tenha
>vários métodos com o mesmo nome desde de que o múmero
>e o tipo de parâmetros seja diferentes.
>Todo mundo fala que polimorfismo é só isso!!
>Porém queria que se possível vc´s me mostrassem
>exemplos de onde e quando utilizar está propriedade e
>o que significa realmente polimorfismo..
>Desde já agradeço a atenção de todos,
>
>André Yurion
>
>__
>Do You Yahoo!?
>Get email at your own domain with Yahoo! Mail.
>http://personal.mail.yahoo.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]
>-
>
>-- LISTA SOUJAVA 
>http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.b

RES: RES: [java-list] Polimorfismo

2001-03-08 Thread Alexandre Rodrigues Gomes

falou e disse. Me deixei envolver pela emoção e falei besteira.
Obrigado.

By Alê!

-Mensagem original-
De: Mister M [mailto:[EMAIL PROTECTED]]
Enviada em: quinta-feira, 8 de março de 2001 8:17
Para: [EMAIL PROTECTED]
Assunto: Re: RES: [java-list] Polimorfismo


Na verdade, polimorfismo eh o q o Sven explicou no e-mail anterior, ou seja,

estah relacionado com o Dynamic Binding. Isso que estah explicado no e-mail 
do Alexandre (embora eu jah tenha visto milhares de vezes erradamente, o q 
significa q algum livro deve ter dito isso) eh o overloading, ou seja, qdo 
um metodo tem diversas formas de ser chamado por causa da lista de 
parametros e, por isso, pode tomar n acoes diferentes.
Vou usar o exemplo classico do livro do Bruce Eckel, Thinking in Java:

Imagine q vc tenha uma classe FormaGeometrica + ou - assim

class FormaGeometrica {
   public void desenha() {
  System.out.println("Nao implementado...");
   }
...
...
}

Agora imagine uma subclasse assim:

class Circulo extends FormaGeometrica {
   public void desenha() {
  // codigo para desenhar circulo...
   }
...
...
}

E outra assim:

class CirculoPreenchido extends Circulo {
   public void desenha() {
  super.desenha();
  // codigo para preencher circulo...
   }
...
...
}


Qdo vc faz:

FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();

imagine que o metodo retorna qualquer forma geometrica registrada no sistema

(Circulo, CirculoPreenchido, FormaGeometrica e outras subclasses). Se este 
metodo foi declarado como :

class FabricaDeFormas {
   public static FormaGeometrica geraFormaAleatoria() {
  //codigo pra gerar forma aleatoria
   }
}

ele pode retornar Circulo, por exemplo, q como "extends" FormaGeometrica EH 
uma FormaGeometrica.
Voltando a linha do exemplo:


FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
forma.desenha();


vc nao pode dizer o q este metodo ira fazer. Ele pode tanto emitir a 
mensagem q nao esta implementado, como pintar um circulo ou ainda pintar um 
circulo e preenche-lo. Esta eh a beleza do polimorfismo. O metodo da classe 
q vc realmente retornou do geraFormaAleatoria() e q vai ser chamado. Baixe o

Thinking In Java (em ingles) do site do Bruce (www.bruceeckel.com).

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

>From: Alexandre Rodrigues Gomes <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>Subject: RES: [java-list] Polimorfismo
>Date: Wed, 7 Mar 2001 18:01:20 -0300
>
>André, por poliformismo podemos que concluir que seja algo com muitas
>formas, certo ?
>Este algo de que estamos falando são os métodos, ou seja, polimorfismo é a
>propriedade para que um método assuma várias formas.
>Por exemplo, considere um método que faça um pesquisa por um cliente numa
>base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
>pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
>necessidade de criar dois métodos distindos:
>
>findClientByName(String name) e
>findClientByCPF(long cpf)
>
>Com o polimorfismo, isto não é necessário, o que torna sua solução mais
>transparente e elegante:
>
>findClient(String name) e
>findClient(long cpf)
>
>suponha também que desejamos criar um método para pesquisa que faça a
>interseção entre idade e naturalidade. Logo, construiríamos um método com a
>seguinte assinatura:
>
>findClient(Date idade, String natural)
>
>e todos estes métodos poderiam conviver numa mesma classe, sem problemas.
>
>By Alê!
>
>
>-----Mensagem original-----
>De: Yurion "André [mailto:[EMAIL PROTECTED]]
>Enviada em: quarta-feira, 7 de março de 2001 14:44
>Para: [EMAIL PROTECTED]
>Assunto: [java-list] Polimorfismo
>
>
>Caros amigos,
>
>Estou estudando POO e estou com algumas dúvidas sobre
>polimorfismo.
>A única coisa que sei sobre o assunto é que
>está propriedade da OO permite que uma classe tenha
>vários métodos com o mesmo nome desde de que o múmero
>e o tipo de parâmetros seja diferentes.
>Todo mundo fala que polimorfismo é só isso!!
>Porém queria que se possível vc´s me mostrassem
>exemplos de onde e quando utilizar está propriedade e
>o que significa realmente polimorfismo..
>Desde já agradeço a atenção de todos,
>
>André Yurion
>
>__
>Do You Yahoo!?
>Get email at your own domain with Yahoo! Mail.
>http://personal.mail.yahoo.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]
>-

Re: RES: [java-list] Polimorfismo

2001-03-08 Thread Sven van ´t Veer

Cuidado !!!

Method Overloading NÃO É polimorfism!!

sven

Alexandre Rodrigues Gomes wrote:

> André, por poliformismo podemos que concluir que seja algo com muitas
> formas, certo ? 
> Este algo de que estamos falando são os métodos, ou seja, polimorfismo é a
> propriedade para que um método assuma várias formas.
> Por exemplo, considere um método que faça um pesquisa por um cliente numa
> base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
> pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
> necessidade de criar dois métodos distindos:
> 
> findClientByName(String name) e 
> findClientByCPF(long cpf)
> 
> Com o polimorfismo, isto não é necessário, o que torna sua solução mais
> transparente e elegante:
> 
> findClient(String name) e 
> findClient(long cpf)
> 
> suponha também que desejamos criar um método para pesquisa que faça a
> interseção entre idade e naturalidade. Logo, construiríamos um método com a
> seguinte assinatura:
> 
> findClient(Date idade, String natural)
> 
> e todos estes métodos poderiam conviver numa mesma classe, sem problemas.
> 
> By Alê!
> 
> 
> -Mensagem original-
> De: Yurion "André [mailto:[EMAIL PROTECTED]]
> Enviada em: quarta-feira, 7 de março de 2001 14:44
> Para: [EMAIL PROTECTED]
> Assunto: [java-list] Polimorfismo
> 
> 
> Caros amigos,
> 
> Estou estudando POO e estou com algumas dúvidas sobre
> polimorfismo.
> A única coisa que sei sobre o assunto é que 
> está propriedade da OO permite que uma classe tenha
> vários métodos com o mesmo nome desde de que o múmero
> e o tipo de parâmetros seja diferentes.
> Todo mundo fala que polimorfismo é só isso!!
> Porém queria que se possível vc´s me mostrassem
> exemplos de onde e quando utilizar está propriedade e
> o que significa realmente polimorfismo..
> Desde já agradeço a atenção de todos,
> 
> André Yurion
> 
> __
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail. 
> http://personal.mail.yahoo.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] 
> -
> 
> -- 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] 
> -
> 
> 


-- 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] 
-




Re: RES: [java-list] Polimorfismo

2001-03-08 Thread Daniel A. Melo

Algums autores consideram como polimorfismo paramétrico.

[]´s

Daniel A.

Sven van ´t Veer wrote:

> Cuidado !!!
>
> Method Overloading NÃO É polimorfism!!
>
> sven
>
> Alexandre Rodrigues Gomes wrote:
>
> > André, por poliformismo podemos que concluir que seja algo com muitas
> > formas, certo ?
> > Este algo de que estamos falando são os métodos, ou seja, polimorfismo é a
> > propriedade para que um método assuma várias formas.
> > Por exemplo, considere um método que faça um pesquisa por um cliente numa
> > base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
> > pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
> > necessidade de criar dois métodos distindos:
> >
> > findClientByName(String name) e
> > findClientByCPF(long cpf)
> >
> > Com o polimorfismo, isto não é necessário, o que torna sua solução mais
> > transparente e elegante:
> >
> > findClient(String name) e
> > findClient(long cpf)
> >
> > suponha também que desejamos criar um método para pesquisa que faça a
> > interseção entre idade e naturalidade. Logo, construiríamos um método com a
> > seguinte assinatura:
> >
> > findClient(Date idade, String natural)
> >
> > e todos estes métodos poderiam conviver numa mesma classe, sem problemas.
> >
> > By Alê!
> >
> >
> > -Mensagem original-
> > De: Yurion "André [mailto:[EMAIL PROTECTED]]
> > Enviada em: quarta-feira, 7 de março de 2001 14:44
> > Para: [EMAIL PROTECTED]
> > Assunto: [java-list] Polimorfismo
> >
> >
> > Caros amigos,
> >
> > Estou estudando POO e estou com algumas dúvidas sobre
> > polimorfismo.
> > A única coisa que sei sobre o assunto é que
> > está propriedade da OO permite que uma classe tenha
> > vários métodos com o mesmo nome desde de que o múmero
> > e o tipo de parâmetros seja diferentes.
> > Todo mundo fala que polimorfismo é só isso!!
> > Porém queria que se possível vc´s me mostrassem
> > exemplos de onde e quando utilizar está propriedade e
> > o que significa realmente polimorfismo..
> > Desde já agradeço a atenção de todos,
> >
> > André Yurion
> >
> > __
> > Do You Yahoo!?
> > Get email at your own domain with Yahoo! Mail.
> > http://personal.mail.yahoo.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]
> > -
> >
> > -- 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]
> > -
> >
> >
>
> -- 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]
> -


-- 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] 
-




Re: RES: [java-list] Polimorfismo

2001-03-08 Thread Aristides Tavares dos Santos

Apenas uma correção matemática, o círculo que vc menciona quer dizer na
verdade circuferência, e círculo preenchido é redundante, basta dizer
círculo.
Abraços
Aristides
- Original Message -
From: "Mister M" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 08, 2001 8:17 AM
Subject: Re: RES: [java-list] Polimorfismo


> Na verdade, polimorfismo eh o q o Sven explicou no e-mail anterior, ou
seja,
> estah relacionado com o Dynamic Binding. Isso que estah explicado no
e-mail
> do Alexandre (embora eu jah tenha visto milhares de vezes erradamente, o q
> significa q algum livro deve ter dito isso) eh o overloading, ou seja, qdo
> um metodo tem diversas formas de ser chamado por causa da lista de
> parametros e, por isso, pode tomar n acoes diferentes.
> Vou usar o exemplo classico do livro do Bruce Eckel, Thinking in Java:
>
> Imagine q vc tenha uma classe FormaGeometrica + ou - assim
>
> class FormaGeometrica {
>public void desenha() {
>   System.out.println("Nao implementado...");
>}
> ...
> ...
> }
>
> Agora imagine uma subclasse assim:
>
> class Circulo extends FormaGeometrica {
>public void desenha() {
>   // codigo para desenhar circulo...
>}
> ...
> ...
> }
>
> E outra assim:
>
> class CirculoPreenchido extends Circulo {
>public void desenha() {
>   super.desenha();
>   // codigo para preencher circulo...
>}
> ...
> ...
> }
>
>
> Qdo vc faz:
>
> FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
>
> imagine que o metodo retorna qualquer forma geometrica registrada no
sistema
> (Circulo, CirculoPreenchido, FormaGeometrica e outras subclasses). Se este
> metodo foi declarado como :
>
> class FabricaDeFormas {
>public static FormaGeometrica geraFormaAleatoria() {
>   file://codigo pra gerar forma aleatoria
>}
> }
>
> ele pode retornar Circulo, por exemplo, q como "extends" FormaGeometrica
EH
> uma FormaGeometrica.
> Voltando a linha do exemplo:
>
>
> FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
> forma.desenha();
>
>
> vc nao pode dizer o q este metodo ira fazer. Ele pode tanto emitir a
> mensagem q nao esta implementado, como pintar um circulo ou ainda pintar
um
> circulo e preenche-lo. Esta eh a beleza do polimorfismo. O metodo da
classe
> q vc realmente retornou do geraFormaAleatoria() e q vai ser chamado. Baixe
o
> Thinking In Java (em ingles) do site do Bruce (www.bruceeckel.com).
>
> Michael Nascimento Santos
> Analista/Consultor
> CPM Sistemas - www.cpm.com.br
>
> >From: Alexandre Rodrigues Gomes <[EMAIL PROTECTED]>
> >Reply-To: [EMAIL PROTECTED]
> >To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
> >Subject: RES: [java-list] Polimorfismo
> >Date: Wed, 7 Mar 2001 18:01:20 -0300
> >
> >André, por poliformismo podemos que concluir que seja algo com muitas
> >formas, certo ?
> >Este algo de que estamos falando são os métodos, ou seja, polimorfismo é
a
> >propriedade para que um método assuma várias formas.
> >Por exemplo, considere um método que faça um pesquisa por um cliente numa
> >base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
> >pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos a
> >necessidade de criar dois métodos distindos:
> >
> >findClientByName(String name) e
> >findClientByCPF(long cpf)
> >
> >Com o polimorfismo, isto não é necessário, o que torna sua solução mais
> >transparente e elegante:
> >
> >findClient(String name) e
> >findClient(long cpf)
> >
> >suponha também que desejamos criar um método para pesquisa que faça a
> >interseção entre idade e naturalidade. Logo, construiríamos um método com
a
> >seguinte assinatura:
> >
> >findClient(Date idade, String natural)
> >
> >e todos estes métodos poderiam conviver numa mesma classe, sem problemas.
> >
> >By Alê!
> >
> >
> >-Mensagem original-
> >De: Yurion "André [mailto:[EMAIL PROTECTED]]
> >Enviada em: quarta-feira, 7 de março de 2001 14:44
> >Para: [EMAIL PROTECTED]
> >Assunto: [java-list] Polimorfismo
> >
> >
> >Caros amigos,
> >
> >Estou estudando POO e estou com algumas dúvidas sobre
> >polimorfismo.
> >A única coisa que sei sobre o assunto é que
> >está propriedade da OO permite que uma classe tenha
> >vários métodos com o mesmo nome desde de que o múmero
> >e o tipo de parâmetros seja diferentes.
> >Todo mundo fala que polimorfismo é só isso!!
> >Porém queria que se possível 

Re: RES: [java-list] Polimorfismo

2001-03-09 Thread Mister M

Sim eh verdade (errei feio... :-)). Mas acho q o objetivo foi bem alcancado 
mesmo assim. Ah, polimorfismo parametrico, como chamam alguns o overloading, 
nao pode ser tratado genericamente como polimorfismo. Polimorfismo eh o q 
segue abaixo e fim de papo!!! :-) O resto eh invencao de autores. Os livros 
de OOP desvinculados de linguagem nao aprensentam nada sobre overloading 
(ateh mesmo pq isto NAO CARACTERIZA UMA LINGUAGEM COMO ORIENTADA A OBJETOS) 
e prefiro confiar nesta abordagem neutra. No offenses.

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br


>From: "Aristides Tavares dos Santos" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: RES: [java-list] Polimorfismo
>Date: Thu, 8 Mar 2001 11:47:00 -0300
>
>Apenas uma correção matemática, o círculo que vc menciona quer dizer na
>verdade circuferência, e círculo preenchido é redundante, basta dizer
>círculo.
>Abraços
>Aristides
>- Original Message -
>From: "Mister M" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Thursday, March 08, 2001 8:17 AM
>Subject: Re: RES: [java-list] Polimorfismo
>
>
> > Na verdade, polimorfismo eh o q o Sven explicou no e-mail anterior, ou
>seja,
> > estah relacionado com o Dynamic Binding. Isso que estah explicado no
>e-mail
> > do Alexandre (embora eu jah tenha visto milhares de vezes erradamente, o 
>q
> > significa q algum livro deve ter dito isso) eh o overloading, ou seja, 
>qdo
> > um metodo tem diversas formas de ser chamado por causa da lista de
> > parametros e, por isso, pode tomar n acoes diferentes.
> > Vou usar o exemplo classico do livro do Bruce Eckel, Thinking in Java:
> >
> > Imagine q vc tenha uma classe FormaGeometrica + ou - assim
> >
> > class FormaGeometrica {
> >public void desenha() {
> >   System.out.println("Nao implementado...");
> >}
> > ...
> > ...
> > }
> >
> > Agora imagine uma subclasse assim:
> >
> > class Circulo extends FormaGeometrica {
> >public void desenha() {
> >   // codigo para desenhar circulo...
> >}
> > ...
> > ...
> > }
> >
> > E outra assim:
> >
> > class CirculoPreenchido extends Circulo {
> >public void desenha() {
> >   super.desenha();
> >   // codigo para preencher circulo...
> >}
> > ...
> > ...
> > }
> >
> >
> > Qdo vc faz:
> >
> > FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
> >
> > imagine que o metodo retorna qualquer forma geometrica registrada no
>sistema
> > (Circulo, CirculoPreenchido, FormaGeometrica e outras subclasses). Se 
>este
> > metodo foi declarado como :
> >
> > class FabricaDeFormas {
> >public static FormaGeometrica geraFormaAleatoria() {
> >   file://codigo pra gerar forma aleatoria
> >}
> > }
> >
> > ele pode retornar Circulo, por exemplo, q como "extends" FormaGeometrica
>EH
> > uma FormaGeometrica.
> > Voltando a linha do exemplo:
> >
> >
> > FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
> > forma.desenha();
> >
> >
> > vc nao pode dizer o q este metodo ira fazer. Ele pode tanto emitir a
> > mensagem q nao esta implementado, como pintar um circulo ou ainda pintar
>um
> > circulo e preenche-lo. Esta eh a beleza do polimorfismo. O metodo da
>classe
> > q vc realmente retornou do geraFormaAleatoria() e q vai ser chamado. 
>Baixe
>o
> > Thinking In Java (em ingles) do site do Bruce (www.bruceeckel.com).
> >
> > Michael Nascimento Santos
> > Analista/Consultor
> > CPM Sistemas - www.cpm.com.br
> >
> > >From: Alexandre Rodrigues Gomes <[EMAIL PROTECTED]>
> > >Reply-To: [EMAIL PROTECTED]
> > >To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
> > >Subject: RES: [java-list] Polimorfismo
> > >Date: Wed, 7 Mar 2001 18:01:20 -0300
> > >
> > >André, por poliformismo podemos que concluir que seja algo com muitas
> > >formas, certo ?
> > >Este algo de que estamos falando são os métodos, ou seja, polimorfismo 
>é
>a
> > >propriedade para que um método assuma várias formas.
> > >Por exemplo, considere um método que faça um pesquisa por um cliente 
>numa
> > >base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
> > >pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, teríamos 
>a
> > >necessidade de criar dois métodos distindos

Re: RES: [java-list] Polimorfismo

2001-03-09 Thread Sven van ´t Veer

Exatamente,

Acho q ateh VB tem Overloading (C tem)

Mister M wrote:

> Sim eh verdade (errei feio... :-)). Mas acho q o objetivo foi bem 
> alcancado  mesmo assim. Ah, polimorfismo parametrico, como chamam 
> alguns o overloading,  nao pode ser tratado genericamente como 
> polimorfismo. Polimorfismo eh o q  segue abaixo e fim de papo!!! :-) O 
> resto eh invencao de autores. Os livros  de OOP desvinculados de 
> linguagem nao aprensentam nada sobre overloading  (ateh mesmo pq isto 
> NAO CARACTERIZA UMA LINGUAGEM COMO ORIENTADA A OBJETOS)  e prefiro 
> confiar nesta abordagem neutra. No offenses.



-- 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] 
-




RE: [java-list] Polimorfismo (PARA FECHAR)

2001-03-21 Thread Mister M

Ola Andre e Christian (e lista),

Essa "nova" discussao sobre polimorfismo iniciou-se qdo eu enviei a citacao 
do Bruce Eckel. Antes q isso vire off-topic e uma guerra, deixe-me explicar 
pra todo mundo o q acontece e pq este assunto eh pertinente (espero q seja a 
ultima vez... :-))

-> O que eh polimorfismo?

Ateh o inicio da decada de 90, polimorfismo era (com certeza, 
indiscutivelmente) a capacidade presente no C de se declarar uma funcao com 
um mesmo nome e varios argumentos - void funcao(int a), void funcao(int a, 
int b).
Com o surgimento das linguagens orientadas a objeto, polimorfismo passou a 
ser definido como a capacidade de uma chamada de metodo sempre acontecer no 
ultimo objeto da hierarquia que o redefine (em Java eh assim, em C++ eh 
preciso usar virtual).
No contexto de OOP, polimorfismo conforme definido somente no paragrafo 
acima (juntamente com abstracao de dados, encapsulamento e heranca) passou a 
ser um dos conceitos essenciais para que uma linguagem pudesse ser 
considerada orientada a objetos. A primeira definicao deveria continuar 
sendo usada somente nas linguagens antigas, mas jah q Java e C++ suportam 
overloading, alguns autores continuaram utilizando o termo
polimorfismo para se referiri a ele tb. Aih comeca nossa discussao...

-> Por q ha esssa discussao?

Ha duas semanas atras, alguem na lista falou q estava lendo um livro sobre 
Java e disse que este livro SOH CONSIDERAVA POLIMORFISMO COMO OVERLOADING, 
ALGO COMPLETAMENTE INCONCEBIVEL MESMO PARA OS QUE DEFENDEM Q OVERLOADING TB 
EH POLIMORFISMO. Daih, eu e o Sven nos revezamos (pode-se dizer) para 
explicar q o termo polimorfimo (DENTRO DO CONTEXTO OOP) se aplica a 
OVERRIDING ou DYNAMIC BINDING.

-> Pq a discussao eh pertinente?

Conforme jah explicado, polimorfismo (significando overriding) eh um dos
conceitos essenciais da OOP (object-oriented programming ou POO ou OO, como 
desejarem). Se vc nao sabe como funciona  a ligacao dinamica, entao vc vai 
ter SERIOS PROBLEMAS EM JAVA. Por isso q eu disse q era um conceito basico, 
no sentido de ser ESSENCIAL, A BASE PARA PROGRAMAR BEM EM JAVA.
Se polimorfismo tb pode ser aplicado a overloading (q tb eh uma "feature" 
utilissima do Java, indiscutivelmente) eh uma questao quase religiosa em q 
cada um faz sua decisao. O grande ponto da questao eh q, qdo disserem 
polimorfismo no contexto OOP, sempre pense somente em OVERRIDING. Agora, qdo 
ponto for somente PROGRAMACAO JAVA, aih vc decide se polimorfismo tb eh 
overloading ou nao. Como alguns acham (eu nao, but anyway) q religiao nao se 
discute, eh bom a gente parar por aki.


Espere q tenha ficado claro o ponto. Respeito a opiniao dos colegas q acham 
q o termo polimorfismo tb deveria ser aplicado a overloading e reconheco q 
uma traducao literal do termo (muitas formas) poderia induzir alguem a 
aceitar a ideia, mas por razoes historicas, mantenho minha opiniao sobre se 
aplicar somente  a overriding, dynamic binding e afins.
Poderiamos fazer 12.000.000 de citacoes de livros e nunca chegariamos a 
lugar algum, jah q comecariamos a discutir quem acha qual autor melhor q o 
outro - e aih entrariamos em uma discussao completamente pessoal e 
off-topic.
Em suma:

-> Polimorfismo significa muitas formas;
-> Polimorfismo eh um dos conceitos essenciais da OOP;
-> Dentro do contexto OOP, polimorfismo refere-se unica e exclusivamente a 
overloading, dynamic binding e afins;
-> Dentro do contexto de programacao, alguns afirmam q polimorfismo tb se 
aplica a overloading, conceito este q vem da epoca em q existia somente o C 
e do qual alguns discordam;
-> Overriding e dynamic binding sao essenciais para q o Java seja 
considerado uma linguagem orientada a objetos, enquanto overloading existe 
em varias linguagens nao-orientadas tb, o q nao faz com q deixe de ser uma 
caracteristica extremamente util do Java
-> CHEGA DE DISCUTIR POLIMORFISMO; CADA UM DECIDA SE ACHA Q O TERMO SE 
APLICA, ALEM DE A OVERRIDING (O Q EH INDISCUTIVEL) TB A OVERLOADING (EU, 
SVEN E OUTROS - NAO, ANDRE, CHRISTIAN E OUTROS - SIM).

Obrigado pela atencao e paciencia de terem lido ate aki.
[]'s

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

_
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] 
-




[java-list] Polimorfismo (PARA FECHAR) II

2001-03-21 Thread Mister M

Caro Christian

Ok, minha vez...

>Caro Michael,
>
>Eu vou lhe fazer uma pergunta e se a sua resposta for adequada eu posso
>mudar de opinião quanto a minha posição. A pergunta é:
>
>   Porque o overloading não é polimorfismo?
>
>Acredito que a resposta a esta pergunta é crucial para definirmos se
>overloading é ou não é polimorfismo.
>

Com certeza. Acho q vc nao prestou atencao a certas partes do e-mail 
anterior. Frisando:

-> No tempo do C puro, overloading ERA POLIMORFISMO.
-> Depois, alguem em algum ponto do universo (nao lembro quem, estou 
correndo atras, acho q era um grupo de autores) determinou q para ser uma 
linguagem OO, vc precisa ter abstracao, encapsulamento, heranca e 
polimorfismo. Foram essas caras (preciso achar isso, tah dificil...) q 
definiram q polimorfismo EH OVERRING E DYNAMIC BINDING.
-> Por isso, o uso de polimorfismo significando overloading foi considerado 
inapropriado para OOP, jah q, segundo a definicao dos camaradas acima, vc 
precisa implementar o polimorfismo para ser uma linguagem OO mas nao precisa 
implementar overloading. Matematicamente,
se todo conjunto L (linguagem) precisa conter o conjunto P (polimorfismo) 
mas nao o conjunto O (overloading), isso significa q O nao esta contido em P 
(overloading nao faz parte do polimorfismo).

>Acho que você está colocando a sua definição como final e acredito que a
>discussão é longe de final. Se devemos fechar a questão, ela deve ser
>fechada como está: em aberto (paradoxal mas inevitável). A sua argumentação
>é baseada nas suas idéias e está desconsiderando toda e qualquer
>arguemntação que eu coloquei.

Nao, nao estou desprezando. Soh estou comentando q sua definicao vem de 
conceitos q foram se tornando "deprecated" com o tempo.

>Quanto ao seu email, tenho alguns comentários:
>
>Segue:
>
>Mister M wrote:
> >
> > -> Pq a discussao eh pertinente?
> >
> > Se polimorfismo tb pode ser aplicado a overloading (q tb eh uma 
>"feature"
> > utilissima do Java, indiscutivelmente) eh uma questao quase religiosa em 
>q
> > cada um faz sua decisao. O grande ponto da questao eh q, qdo disserem
> > polimorfismo no contexto OOP, sempre pense somente em OVERRIDING.
>
>Não. Quando disserem polimorfismo, pense em overriding e overloading.

Eu nao falei qdo disserem polimorfismo, mas sim polimorfismo no conceito 
OOP. Polimorfismo em OO eh sempre overriding e dynamic binding

>
> > Espere q tenha ficado claro o ponto.
>
>Idem.

Idem

> > Respeito a opiniao dos colegas q acham
> > q o termo polimorfismo tb deveria ser aplicado a overloading e reconheco 
>q
> > uma traducao literal do termo (muitas formas) poderia induzir alguem a
> > aceitar a ideia, mas por razoes historicas, mantenho minha opiniao sobre 
>se
> > aplicar somente  a overriding, dynamic binding e afins.
>
>Também mantenho minha opinião de que polimorfismo aplica-se a overriding e
>overloading, dynamic binding e afins.

E eu a minha...

> > Poderiamos fazer 12.000.000 de citacoes de livros e nunca chegariamos a
> > lugar algum, jah q comecariamos a discutir quem acha qual autor melhor q 
>o
> > outro - e aih entrariamos em uma discussao completamente pessoal e
> > off-topic.
>
>Concordo, vamos então mudar o foco da discussão a teoria em si e tentarmos
>chegar em uma conclusão.

Sim, mas acho q alguem (OMG, sei lah) regulamentou a OO e o polimorfismo 
(por consequencia) do jeito q expliquei (so preciso achar...)

>
> > Em suma:
> >
> > -> Polimorfismo significa muitas formas;
> > -> Polimorfismo eh um dos conceitos essenciais da OOP;
> > -> Dentro do contexto OOP, polimorfismo refere-se unica e exclusivamente 
>a
> > overloading, dynamic binding e afins;
>
>Ou:
>
>  - Dentro do contexto OOP, polimorfismo refere-se unica e
>exclusivamente a overloading, OVERRIDING, dynamic binding
>e afins;

Eu quis dizer overriding, dynamic binding e afins e nao overloading (foi a 
pressa :-));

> > -> Dentro do contexto de programacao, alguns afirmam q polimorfismo tb 
>se
> > aplica a overloading, conceito este q vem da epoca em q existia somente 
>o C
> > e do qual alguns discordam;
>
>Dentro do contexto de OO também diz-se isto.

Nao, dentro do contexto de algumas linguagens sim, mas em OO, 
conceitualmente nao (vide explicacao acima). Alguns seguem o conceito 
herdado do C, q nao eh parte da OO, mas sim da linguagem. Polimorfismo tem a 
ver com a mesma mensagem e mudar a lista de argumentos muda a mensagem (por 
mais q isso vah iniciar outra discussao...)

>
> > -> Overriding e dynamic binding sao essenciais para q o Java seja
> > considerado uma linguagem orientada a objetos, enquanto overloading 
>existe
> > em varias linguagens nao-orientadas tb, o q nao faz com q deixe de ser 
>uma
> > caracteristica extremamente util do Java
>
>Você está cometendo uma falácia lógica. Se para algo pertencer a um
>conjunto A ele tem que ter as características {X,Y,Z}, não quer dizer que
>se um elemento que não pertence ao conjunto A contém alguma das
>características então estas caracterísitcas

[java-list] Polimorfismo (PARA FECHAR MESMO)

2001-03-23 Thread Mister M

Ola todos os interessados nesta discussao:

Acho q nos nao vamos chegar a lugar algum. Vamos resumir todas as opinioes 
entao e chega de papo, ok?

-> Overriding:
Capacidade de se sobrescrever um metodo de uma classe pai e este ultimo 
metodo ser chamado mesmo q se esteja trabalhando com a interface pai. Ex:

Pai p = new Filho();
p.facaX();

Se em algum lugar da classe Filho houver uma nova definicao para facaX(), 
esta definicao eh q serah chamada.

-> Dynamic binding
Capacidade do interpretador de postergar a identificacao do metodo a ser 
chamado ateh o momento da execucao, ou seja, determinar qual a verdadeira 
classe do objeto e se alguma classe na hierarquia o redefine (ligacao 
dinamica)

-> Overloading
Capacidade de se declarar um mesmo metodo com diferentes listas de 
argumento. Ex:

void facaX();
void facaX(Object y);
void facaX(int a);
void facaX(Object y, int a);

-> Static binding
Capacidade do compilador de determinar qual metodo overloaded devera ser 
chamado (ligacao estatica)

-> Polimorfismo
Pelo menos overriding, sendo alguns tb overloading

-> Polimorfismo parametrico
Segundo apostila da Sun, no SL-110 eh vc poder fazer:

p.facaX(new Vector());

qdo na classe P o metodo esta definido como:

void facax(Object o);

ou seja, a capacidade de se "fazer upcasting sozinho" do compilador.
Alguns dizem q nao eh isso, mas sim overloading.

Se esqueci de alguma coisa, favor complementar! tks!

[]'s

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

_
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] 
-




[java-list] Polimorfismo e Herança Múltipla

2002-03-25 Thread Ary Junior



    Olá pessoal, tô com uma dúvida 
em relação a implementação de dois conceitos muito importantes da POO em Java, 
Polimorfismo e Herança Múltipla.
    Bem, imaginemos a classe 
HomemAranha, consideremos também q o HomemAranha não seja somente o PeterParker, 
ou seja, eu também posso ser um objeto da classe HomemAranha. Eu herdo da classe 
Homem, assim como o PeterParker e também vou herdar da clase Aranha. Agora vamos 
empregar a regra do polimorfismo à classe Homem, pois o meu método 
expressarDuvida() da classe Homem retorna "Uai sô!!!" enquanto este mesmo método 
na classe PeterParker retorna "I do not understand!!!".
    E então eu pergunto como fazer 
isto em Java? Já q não posso herdar de duas classes ao mesmo tempo terei q 
utilizar uma Interface? Só consegui resolver este problema assim, fazendo com 
q Homem seja uma interface e Aranha uma classe, sendo assim PeterParker 
extende de Aranha e implementa Homem. Alguma outra sugestão?
 
Valeu!!!
 
    
Ary Junior


Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-21 Thread Christian Rauh

Caro Michael,

Eu vou lhe fazer uma pergunta e se a sua resposta for adequada eu posso
mudar de opinião quanto a minha posição. A pergunta é:

  Porque o overloading não é polimorfismo?

Acredito que a resposta a esta pergunta é crucial para definirmos se
overloading é ou não é polimorfismo.

Acho que você está colocando a sua definição como final e acredito que a
discussão é longe de final. Se devemos fechar a questão, ela deve ser
fechada como está: em aberto (paradoxal mas inevitável). A sua argumentação
é baseada nas suas idéias e está desconsiderando toda e qualquer
arguemntação que eu coloquei.

Quanto ao seu email, tenho alguns comentários:

Segue:

Mister M wrote:
> 
> -> Pq a discussao eh pertinente?
> 
> Se polimorfismo tb pode ser aplicado a overloading (q tb eh uma "feature"
> utilissima do Java, indiscutivelmente) eh uma questao quase religiosa em q
> cada um faz sua decisao. O grande ponto da questao eh q, qdo disserem
> polimorfismo no contexto OOP, sempre pense somente em OVERRIDING.

Não. Quando disserem polimorfismo, pense em overriding e overloading.

> Espere q tenha ficado claro o ponto.

Idem.

> Respeito a opiniao dos colegas q acham
> q o termo polimorfismo tb deveria ser aplicado a overloading e reconheco q
> uma traducao literal do termo (muitas formas) poderia induzir alguem a
> aceitar a ideia, mas por razoes historicas, mantenho minha opiniao sobre se
> aplicar somente  a overriding, dynamic binding e afins.

Também mantenho minha opinião de que polimorfismo aplica-se a overriding e
overloading, dynamic binding e afins.

> Poderiamos fazer 12.000.000 de citacoes de livros e nunca chegariamos a
> lugar algum, jah q comecariamos a discutir quem acha qual autor melhor q o
> outro - e aih entrariamos em uma discussao completamente pessoal e
> off-topic.

Concordo, vamos então mudar o foco da discussão a teoria em si e tentarmos
chegar em uma conclusão.

> Em suma:
> 
> -> Polimorfismo significa muitas formas;
> -> Polimorfismo eh um dos conceitos essenciais da OOP;
> -> Dentro do contexto OOP, polimorfismo refere-se unica e exclusivamente a
> overloading, dynamic binding e afins;

Ou:

 - Dentro do contexto OOP, polimorfismo refere-se unica e 
   exclusivamente a overloading, OVERRIDING, dynamic binding
   e afins;

> -> Dentro do contexto de programacao, alguns afirmam q polimorfismo tb se
> aplica a overloading, conceito este q vem da epoca em q existia somente o C
> e do qual alguns discordam;

Dentro do contexto de OO também diz-se isto.

> -> Overriding e dynamic binding sao essenciais para q o Java seja
> considerado uma linguagem orientada a objetos, enquanto overloading existe
> em varias linguagens nao-orientadas tb, o q nao faz com q deixe de ser uma
> caracteristica extremamente util do Java

Você está cometendo uma falácia lógica. Se para algo pertencer a um
conjunto A ele tem que ter as características {X,Y,Z}, não quer dizer que
se um elemento que não pertence ao conjunto A contém alguma das
características então estas caracterísitcas não definem o conjunto A.

> -> CHEGA DE DISCUTIR POLIMORFISMO; CADA UM DECIDA SE ACHA Q O TERMO SE
> APLICA, ALEM DE A OVERRIDING (O Q EH INDISCUTIVEL) TB A OVERLOADING (EU,
> SVEN E OUTROS - NAO, ANDRE, CHRISTIAN E OUTROS - SIM).

Eu estou aprendendo muito com esta discussão e acredito que é totalmente
válida na lista. Para mim a discussão não está fechada.

Christian

-- 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] 
-




RE: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-21 Thread Andre Mendonca


Mister M,

> -> Depois, alguem em algum ponto do universo (nao lembro 
> quem, estou correndo atras, acho q era um grupo de autores) 
> determinou q para ser uma linguagem OO, vc precisa ter 
> abstracao, encapsulamento, heranca e polimorfismo. Foram 
> essas caras (preciso achar isso, tah dificil...) q definiram 
> q polimorfismo EH OVERRING E DYNAMIC BINDING.

Isto nao impede que o conceito seja estendido ou re-interpretado.
Ou que alguem diga que overloading eh um tipo especifico de
polimorfismo. Este alguem, em algum ponto do universo, disse
isso e o conceito pegou, tanto que muita gente hoje concorda com
ele. Essa pessoa estendeu o conceito. Eu simplesmente nao posso
dizer que o cara esta _errado_. Eh um conceito novo.

> -> Por isso, o uso de polimorfismo significando overloading foi 
> considerado inapropriado para OOP, jah q, segundo a definicao dos 
> camaradas acima, vc precisa implementar o polimorfismo para ser 
> uma linguagem OO mas nao precisa implementar overloading. 

Eh exatamente sobre isto que eu estou falando. A linguagem que
implementa overloading, de acordo com este novo (?) conceito,
implementa "polimorfismo multiplo", ou qualquer outro nome que
tenha sido adotado. Eh uma nova nomenclatura, apenas.

> Soh estou comentando q sua definicao vem de conceitos q foram 
> se tornando "deprecated" com o tempo.

Pode ate ser, mas ainda sao utilizados e aceitos por _muita_ gente.
Essas pessoas nao acham que o termo seja tao deprecated assim.

> Eu nao falei qdo disserem polimorfismo, mas sim polimorfismo 
> no conceito OOP. 

De novo. Conceito de quem? O conceito nao pode ser estendido?

> Polimorfismo em OO eh sempre overriding e dynamic binding

De acordo com o seu conceito (e de muitas, muitas outras pessoas,
eh bem verdade)

> Sim, mas acho q alguem (OMG, sei lah) regulamentou a OO e o 
> polimorfismo (por consequencia) do jeito q expliquei (so preciso 
> achar...)

Alguem pode ter feito isto e o conceito pode ter sido mudado
posteriormente, ou algumas pessoas podem ter adotado uma nomenclatura
diferente. Acho que eh saudavel a aceitacao de novos conceitos, por
mais estranhos que eles possam parecer. Eh possivel que no futuro
chegue-se `a conclusao _unanima_ de que overloading nao eh polimorfismo
porem, _hoje_, os dois conceitos sao aceitos. Nao da pra dar as costas
para tanta gente que acha o contrario.

> Nao, dentro do contexto de algumas linguagens sim, mas em OO, 
> conceitualmente nao (vide explicacao acima). 

Nao existe um conceito de OO imutavel eh inquestionavel. Eh assim que
as coisas evoluem. Se alguem sugeriu uma modificacao, pode ser que
ela seja valida. 

> Polimorfismo tem a ver com a mesma mensagem 

Mais uma vez, de acordo com o conceito que voce defende. Outras
pessoas discordam.

Cordialmente,

Andre Mendonca
[EMAIL PROTECTED]

-- 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] 
-




Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-21 Thread Marcelo Quintella

Eu tenho apenas assistido a toda essa discucao mas nao resisti aa tentacao
de dar o meu palpite...

Eu estou mais para o lado do Andre do que para o lado do Mister M.
"Conceito" de qualquer coisa eh uma coisa meio aleatoria. Alguem define o
conceito e aquilo passa a valer. Mas o que essa discussao toda mostrou eh
que nenhum dos dois conceitos pegou de verdade, e o termo "polimorfismo"
passou a significar diferentes coisas dependendo de _quem_ o usa.

Na minha o opiniao isso nao faz a menor diferenca. Sempre achei que
poliformismo era pura e simplesmente method overriding. Mas os argumentos a
favor ou contra a validade do termo para method overload sao igualmente
fortes.

O que importa para mim eh: Voce sabe usar method overriding eficientemente?
Voce sabe usar method overloading eficientemente? Sabe? Entao otimo, nao faz
a menor diference qual dos dois eh "polimorfismo" ou nao. Se quiserem
podemos criar um novo termo e passar a usa-lo...

Pronto. Ai estao os meus cinco centavos...

Abracos a todos,
Marcelo Quintella


- Original Message -
From: "Andre Mendonca" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: March 21, 2001 1:26 PM
Subject: RE: [java-list] Polimorfismo (PARA FECHAR) II


>
> Mister M,
>
> > -> Depois, alguem em algum ponto do universo (nao lembro
> > quem, estou correndo atras, acho q era um grupo de autores)
> > determinou q para ser uma linguagem OO, vc precisa ter
> > abstracao, encapsulamento, heranca e polimorfismo. Foram
> > essas caras (preciso achar isso, tah dificil...) q definiram
> > q polimorfismo EH OVERRING E DYNAMIC BINDING.
>
> Isto nao impede que o conceito seja estendido ou re-interpretado.
> Ou que alguem diga que overloading eh um tipo especifico de
> polimorfismo. Este alguem, em algum ponto do universo, disse
> isso e o conceito pegou, tanto que muita gente hoje concorda com
> ele. Essa pessoa estendeu o conceito. Eu simplesmente nao posso
> dizer que o cara esta _errado_. Eh um conceito novo.
>
> > -> Por isso, o uso de polimorfismo significando overloading foi
> > considerado inapropriado para OOP, jah q, segundo a definicao dos
> > camaradas acima, vc precisa implementar o polimorfismo para ser
> > uma linguagem OO mas nao precisa implementar overloading.
>
> Eh exatamente sobre isto que eu estou falando. A linguagem que
> implementa overloading, de acordo com este novo (?) conceito,
> implementa "polimorfismo multiplo", ou qualquer outro nome que
> tenha sido adotado. Eh uma nova nomenclatura, apenas.
>
> > Soh estou comentando q sua definicao vem de conceitos q foram
> > se tornando "deprecated" com o tempo.
>
> Pode ate ser, mas ainda sao utilizados e aceitos por _muita_ gente.
> Essas pessoas nao acham que o termo seja tao deprecated assim.
>
> > Eu nao falei qdo disserem polimorfismo, mas sim polimorfismo
> > no conceito OOP.
>
> De novo. Conceito de quem? O conceito nao pode ser estendido?
>
> > Polimorfismo em OO eh sempre overriding e dynamic binding
>
> De acordo com o seu conceito (e de muitas, muitas outras pessoas,
> eh bem verdade)
>
> > Sim, mas acho q alguem (OMG, sei lah) regulamentou a OO e o
> > polimorfismo (por consequencia) do jeito q expliquei (so preciso
> > achar...)
>
> Alguem pode ter feito isto e o conceito pode ter sido mudado
> posteriormente, ou algumas pessoas podem ter adotado uma nomenclatura
> diferente. Acho que eh saudavel a aceitacao de novos conceitos, por
> mais estranhos que eles possam parecer. Eh possivel que no futuro
> chegue-se `a conclusao _unanima_ de que overloading nao eh polimorfismo
> porem, _hoje_, os dois conceitos sao aceitos. Nao da pra dar as costas
> para tanta gente que acha o contrario.
>
> > Nao, dentro do contexto de algumas linguagens sim, mas em OO,
> > conceitualmente nao (vide explicacao acima).
>
> Nao existe um conceito de OO imutavel eh inquestionavel. Eh assim que
> as coisas evoluem. Se alguem sugeriu uma modificacao, pode ser que
> ela seja valida.
>
> > Polimorfismo tem a ver com a mesma mensagem
>
> Mais uma vez, de acordo com o conceito que voce defende. Outras
> pessoas discordam.
>
> Cordialmente,
>
> Andre Mendonca
> [EMAIL PROTECTED]
>
> -- 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]
> -
>


-- 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] 
-




Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-21 Thread Sven van ´t Veer

> -> No tempo do C puro, overloading ERA POLIMORFISMO. 

Ehmm qual C é essa ??
void test(int a){}
void test(char b) {}
Não compila...

> 
> -> Depois, alguem em algum ponto do universo (nao lembro quem, estou 
> correndo atras, acho q era um grupo de autores) determinou q para ser 
> uma linguagem OO, vc precisa ter abstracao, encapsulamento, heranca e 
> polimorfismo. Foram essas caras (preciso achar isso, tah dificil...) q 
> definiram q polimorfismo EH OVERRING E DYNAMIC BINDING. 

Stroustrup ??


-- 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] 
-




Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-22 Thread Leonardo

O Polimorfismo no C++ é estabelecido através dos métodos virtuais. O que
torna a função virtual especial é que, quando uma é acessada usando-se um
ponteiro da class base para um objeto da classe derivada, o C++ determina
qual função chamar no momento da execução, baseando-se no tipo de objeto
para o qual se aponta. Assim, quando objetos diferentes são apontados,
diferentes versões são executadas.

O ponto chave para se obter esse polimorfismo é que você deve acessá-la pelo
uso de um ponteiro declarado como um ponteiro para a class base. Ainda que
você possa chamar uma função virtual usando o nome do objeto da mesma
maneira que chamaria qualquer outra função membro, somente quando uma função
virtual é acessada por meio de um ponteiro para a class base é que o
polimorfismo em tempo de execução é obtido.

Exemplo:

class Base
{
public:
virtual void Quem(void) { cout << "Base\n";}
};

class Primeira:public Base
{
public:
void Quem(void) { cout << "Primeira\n";}
};

main (void)
{
Base base;
Base *p;
Primeira primeira;

p = &base;
p->quem();

p = &primeira;
p->quem();

return 0;
}

O resultado dessa execução será:

Base
Primeira



- Original Message -
From: "Marcelo Quintella" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, March 21, 2001 4:27 PM
Subject: Re: [java-list] Polimorfismo (PARA FECHAR) II


> Eu tenho apenas assistido a toda essa discucao mas nao resisti aa tentacao
> de dar o meu palpite...
>
> Eu estou mais para o lado do Andre do que para o lado do Mister M.
> "Conceito" de qualquer coisa eh uma coisa meio aleatoria. Alguem define o
> conceito e aquilo passa a valer. Mas o que essa discussao toda mostrou eh
> que nenhum dos dois conceitos pegou de verdade, e o termo "polimorfismo"
> passou a significar diferentes coisas dependendo de _quem_ o usa.
>
> Na minha o opiniao isso nao faz a menor diferenca. Sempre achei que
> poliformismo era pura e simplesmente method overriding. Mas os argumentos
a
> favor ou contra a validade do termo para method overload sao igualmente
> fortes.
>
> O que importa para mim eh: Voce sabe usar method overriding
eficientemente?
> Voce sabe usar method overloading eficientemente? Sabe? Entao otimo, nao
faz
> a menor diference qual dos dois eh "polimorfismo" ou nao. Se quiserem
> podemos criar um novo termo e passar a usa-lo...
>
> Pronto. Ai estao os meus cinco centavos...
>
> Abracos a todos,
> Marcelo Quintella
>
>
> - Original Message -
> From: "Andre Mendonca" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: March 21, 2001 1:26 PM
> Subject: RE: [java-list] Polimorfismo (PARA FECHAR) II
>
>
> >
> > Mister M,
> >
> > > -> Depois, alguem em algum ponto do universo (nao lembro
> > > quem, estou correndo atras, acho q era um grupo de autores)
> > > determinou q para ser uma linguagem OO, vc precisa ter
> > > abstracao, encapsulamento, heranca e polimorfismo. Foram
> > > essas caras (preciso achar isso, tah dificil...) q definiram
> > > q polimorfismo EH OVERRING E DYNAMIC BINDING.
> >
> > Isto nao impede que o conceito seja estendido ou re-interpretado.
> > Ou que alguem diga que overloading eh um tipo especifico de
> > polimorfismo. Este alguem, em algum ponto do universo, disse
> > isso e o conceito pegou, tanto que muita gente hoje concorda com
> > ele. Essa pessoa estendeu o conceito. Eu simplesmente nao posso
> > dizer que o cara esta _errado_. Eh um conceito novo.
> >
> > > -> Por isso, o uso de polimorfismo significando overloading foi
> > > considerado inapropriado para OOP, jah q, segundo a definicao dos
> > > camaradas acima, vc precisa implementar o polimorfismo para ser
> > > uma linguagem OO mas nao precisa implementar overloading.
> >
> > Eh exatamente sobre isto que eu estou falando. A linguagem que
> > implementa overloading, de acordo com este novo (?) conceito,
> > implementa "polimorfismo multiplo", ou qualquer outro nome que
> > tenha sido adotado. Eh uma nova nomenclatura, apenas.
> >
> > > Soh estou comentando q sua definicao vem de conceitos q foram
> > > se tornando "deprecated" com o tempo.
> >
> > Pode ate ser, mas ainda sao utilizados e aceitos por _muita_ gente.
> > Essas pessoas nao acham que o termo seja tao deprecated assim.
> >
> > > Eu nao falei qdo disserem polimorfismo, mas sim polimorfismo
> > > no conceito OOP.
> >
> > De novo. Conceito de quem? O conceito nao pode ser estendido?
> >
> > > Polimorfismo em OO eh sempre overriding e dynamic binding
> >
> > De acordo com o seu c

Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-22 Thread Sven van ´t Veer



Marcelo Quintella wrote:

> Eu tenho apenas assistido a toda essa discucao mas nao resisti aa tentacao
> de dar o meu palpite...
> 
> Eu estou mais para o lado do Andre do que para o lado do Mister M.
> "Conceito" de qualquer coisa eh uma coisa meio aleatoria. Alguem define o
> conceito e aquilo passa a valer. Mas o que essa discussao toda mostrou eh
> que nenhum dos dois conceitos pegou de verdade, e o termo "polimorfismo"
> passou a significar diferentes coisas dependendo de _quem_ o usa.

Já que somos todos ´javaneses´ devemos aceitar a definição usado nos 
curso da Sun e nos livros sobre Java, que dis que polimorfismo não é 
method overloading. Também não dá para ctar livros de 19990/19991 ou até 
antes. Na ciencia em geral, a significativa dedefinições e theorias 
cientificas mudam isso é chamado ´paradigm shift´ na filosofia (pos 
modernismo).

> Na minha o opiniao isso nao faz a menor diferenca. Sempre achei que
> poliformismo era pura e simplesmente method overriding. Mas os argumentos a
> favor ou contra a validade do termo para method overload sao igualmente
> fortes.

> Entao otimo, nao faz
> a menor diference qual dos dois eh "polimorfismo" ou nao. Se quiserem
> podemos criar um novo termo e passar a usa-lo...

Faz diferença sim, se alguem te perguntasse ´o que é polimorfismo´. 
Neste caso voçe deveria saber o que é, deveria saber também para 
applicar na prática já que polimorfismo para Java é tão importante qunto 
saber usar for (;;).

Sven


-- 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] 
-




Re: [java-list] Polimorfismo (PARA FECHAR) II

2001-03-23 Thread Mister M

Volto a frisar novamente q a discussao comecou pq muita gente leu em algum 
lugar q polimorfismo eh somente overloading e nao overriding (2 semanas 
atras). Concordo com vc d q o importante eh saber usar, mas se o kra pensa q 
polimorfismo == overloading e alguem pergunta se ele jah aprendeu a usar 
polimorfismo, vao obter a ideia errada, pq todos nos concluimos de comum 
acordo q polimorfismo eh pelo menos overriding e outros acham q eh tb 
overloading.
Mais lenha na fogueira...

Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br

>From: "Marcelo Quintella" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: [java-list] Polimorfismo (PARA FECHAR) II
>Date: Wed, 21 Mar 2001 14:27:50 -0500
>
>Eu tenho apenas assistido a toda essa discucao mas nao resisti aa tentacao
>de dar o meu palpite...
>
>Eu estou mais para o lado do Andre do que para o lado do Mister M.
>"Conceito" de qualquer coisa eh uma coisa meio aleatoria. Alguem define o
>conceito e aquilo passa a valer. Mas o que essa discussao toda mostrou eh
>que nenhum dos dois conceitos pegou de verdade, e o termo "polimorfismo"
>passou a significar diferentes coisas dependendo de _quem_ o usa.
>
>Na minha o opiniao isso nao faz a menor diferenca. Sempre achei que
>poliformismo era pura e simplesmente method overriding. Mas os argumentos a
>favor ou contra a validade do termo para method overload sao igualmente
>fortes.
>
>O que importa para mim eh: Voce sabe usar method overriding eficientemente?
>Voce sabe usar method overloading eficientemente? Sabe? Entao otimo, nao 
>faz
>a menor diference qual dos dois eh "polimorfismo" ou nao. Se quiserem
>podemos criar um novo termo e passar a usa-lo...
>
>Pronto. Ai estao os meus cinco centavos...
>
>Abracos a todos,
>Marcelo Quintella
>
>
>----- Original Message -
>From: "Andre Mendonca" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: March 21, 2001 1:26 PM
>Subject: RE: [java-list] Polimorfismo (PARA FECHAR) II
>
>
> >
> > Mister M,
> >
> > > -> Depois, alguem em algum ponto do universo (nao lembro
> > > quem, estou correndo atras, acho q era um grupo de autores)
> > > determinou q para ser uma linguagem OO, vc precisa ter
> > > abstracao, encapsulamento, heranca e polimorfismo. Foram
> > > essas caras (preciso achar isso, tah dificil...) q definiram
> > > q polimorfismo EH OVERRING E DYNAMIC BINDING.
> >
> > Isto nao impede que o conceito seja estendido ou re-interpretado.
> > Ou que alguem diga que overloading eh um tipo especifico de
> > polimorfismo. Este alguem, em algum ponto do universo, disse
> > isso e o conceito pegou, tanto que muita gente hoje concorda com
> > ele. Essa pessoa estendeu o conceito. Eu simplesmente nao posso
> > dizer que o cara esta _errado_. Eh um conceito novo.
> >
> > > -> Por isso, o uso de polimorfismo significando overloading foi
> > > considerado inapropriado para OOP, jah q, segundo a definicao dos
> > > camaradas acima, vc precisa implementar o polimorfismo para ser
> > > uma linguagem OO mas nao precisa implementar overloading.
> >
> > Eh exatamente sobre isto que eu estou falando. A linguagem que
> > implementa overloading, de acordo com este novo (?) conceito,
> > implementa "polimorfismo multiplo", ou qualquer outro nome que
> > tenha sido adotado. Eh uma nova nomenclatura, apenas.
> >
> > > Soh estou comentando q sua definicao vem de conceitos q foram
> > > se tornando "deprecated" com o tempo.
> >
> > Pode ate ser, mas ainda sao utilizados e aceitos por _muita_ gente.
> > Essas pessoas nao acham que o termo seja tao deprecated assim.
> >
> > > Eu nao falei qdo disserem polimorfismo, mas sim polimorfismo
> > > no conceito OOP.
> >
> > De novo. Conceito de quem? O conceito nao pode ser estendido?
> >
> > > Polimorfismo em OO eh sempre overriding e dynamic binding
> >
> > De acordo com o seu conceito (e de muitas, muitas outras pessoas,
> > eh bem verdade)
> >
> > > Sim, mas acho q alguem (OMG, sei lah) regulamentou a OO e o
> > > polimorfismo (por consequencia) do jeito q expliquei (so preciso
> > > achar...)
> >
> > Alguem pode ter feito isto e o conceito pode ter sido mudado
> > posteriormente, ou algumas pessoas podem ter adotado uma nomenclatura
> > diferente. Acho que eh saudavel a aceitacao de novos conceitos, por
> > mais estranhos que eles possam parecer. Eh possivel que no futuro
> > chegue-se `a conclusao _unanima_ de q

RES: [java-list] Polimorfismo (PARA TERMINAR GERAL)

2001-03-23 Thread Jose Euclides da Silva Junior - DIGR.O

-BEGIN PGP SIGNED MESSAGE-

Deixa eu dar minha pequena contribuição...Na minha opinião o polimorfismo é
uma consequência da existência da herança ou seja, está associado a
hierarquia de classes. Sendo assim, estender o conceito de polimorfismo a
metodos(no caso overload), pode criar confusao em termos de conceitos de OO.
Abraços,

José Euclides Júnior
__
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED] 
[EMAIL PROTECTED]
http://euclides.8m.com


- -Mensagem original-
De: Christian Rauh [SMTP:[EMAIL PROTECTED]]
Enviada em: Quinta-feira, 22 de Março de 2001 17:21
Para:   [EMAIL PROTECTED]
Assunto:Re: [java-list] Polimorfismo

Cleto Henrique Andrade Silva wrote:
> 
> você foi contra a segunda afirmativa quando disse "Dois métodos
> sobrecarregados têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
> identificador da mensagem é formado pelo nome mais os parâmetros, então,
> dois métodos sobrecarregados com parâmetros diferentes não podem ser a
mesma
> mensagem.

Eu queria dizer: "Dois métodos sobrecarregados têm o mesmo nome e são a
responsta a mesma mensagem quando recebida com parâmetros diferentes."

Christian

- -- 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] 
- -
-BEGIN PGP SIGNATURE-
Version: PGP 6.5.1

iQCVAwUBOruH/N0YhuJ3BUxtAQEXrgQAhKFkHKhRvaDv34n/uTovpRqSAq/ebgJn
4nrFzBcq134USZgPrfjo9W4R/qbutlFoY8tVOnUFEJdVC+MV5PEYya0AIB4EcGAH
1v5VOTmp0kYT2dKB6+sjKfHVF0mYlyjjCT6guAqhKKyAbbEqXDMgi56naEUNUmtA
5ux/BSL6yJQ=
=24WN
-END PGP SIGNATURE-

-- 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]
-




RE: [java-list] Polimorfismo (PARA TERMINAR GERAL)

2001-03-23 Thread Jorge Martins

José,

Esta definição é fragil, pois em linguagens que não são fortemente tipadas,
você pode fazer polimorfismo sem necessitar de uma hierarquia de classes.
Mesmo assim, concordo que overload não é polimorfismo.

abraços

Jorge

-Original Message-
From: Jose Euclides da Silva Junior - DIGR.O
[mailto:[EMAIL PROTECTED]]
Sent: sexta-feira, 23 de março de 2001 11:28
To: [EMAIL PROTECTED]
Subject: RES: [java-list] Polimorfismo (PARA TERMINAR GERAL)


-BEGIN PGP SIGNED MESSAGE-

Deixa eu dar minha pequena contribuição...Na minha opinião o polimorfismo é
uma consequência da existência da herança ou seja, está associado a
hierarquia de classes. Sendo assim, estender o conceito de polimorfismo a
metodos(no caso overload), pode criar confusao em termos de conceitos de OO.
Abraços,

José Euclides Júnior
__
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED] 
[EMAIL PROTECTED]
http://euclides.8m.com


- -Mensagem original-
De: Christian Rauh [SMTP:[EMAIL PROTECTED]]
Enviada em: Quinta-feira, 22 de Março de 2001 17:21
Para:   [EMAIL PROTECTED]
Assunto:Re: [java-list] Polimorfismo

Cleto Henrique Andrade Silva wrote:
> 
> você foi contra a segunda afirmativa quando disse "Dois métodos
> sobrecarregados têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
> identificador da mensagem é formado pelo nome mais os parâmetros, então,
> dois métodos sobrecarregados com parâmetros diferentes não podem ser a
mesma
> mensagem.

Eu queria dizer: "Dois métodos sobrecarregados têm o mesmo nome e são a
responsta a mesma mensagem quando recebida com parâmetros diferentes."

Christian

- -- 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] 
- -
-BEGIN PGP SIGNATURE-
Version: PGP 6.5.1

iQCVAwUBOruH/N0YhuJ3BUxtAQEXrgQAhKFkHKhRvaDv34n/uTovpRqSAq/ebgJn
4nrFzBcq134USZgPrfjo9W4R/qbutlFoY8tVOnUFEJdVC+MV5PEYya0AIB4EcGAH
1v5VOTmp0kYT2dKB6+sjKfHVF0mYlyjjCT6guAqhKKyAbbEqXDMgi56naEUNUmtA
5ux/BSL6yJQ=
=24WN
-END PGP SIGNATURE-

-- 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] 
-

-- 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]
-




RES: [java-list] Polimorfismo (PARA TERMINAR GERAL)

2001-03-23 Thread Jose Euclides da Silva Junior - DIGR.O

-BEGIN PGP SIGNED MESSAGE-

1 - NÃO ESTOU FAZENDO DEFINIÇÃO, É SÓ UMA ESTENSÃO DO RACIOCÍNIO.
2 - OS CONCEITOS DE TIPAGEM NORMALMENTE PREVINEM BUGS E CONTROLE DE CAST,
MAS NÃO É ISTO QUE EU ESTAVA ABORDANDO...

José Euclides Júnior
__
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED] 
[EMAIL PROTECTED]
http://euclides.8m.com


- -Mensagem original-
De: Jorge Martins [SMTP:[EMAIL PROTECTED]]
Enviada em: Sexta-feira, 23 de Março de 2001 13:52
Para:   '[EMAIL PROTECTED]'
Assunto:    RE: [java-list] Polimorfismo (PARA TERMINAR GERAL)

José,

Esta definição é fragil, pois em linguagens que não são fortemente tipadas,
você pode fazer polimorfismo sem necessitar de uma hierarquia de classes.
Mesmo assim, concordo que overload não é polimorfismo.

abraços

Jorge

- -Original Message-
From: Jose Euclides da Silva Junior - DIGR.O
[mailto:[EMAIL PROTECTED]]
Sent: sexta-feira, 23 de março de 2001 11:28
To: [EMAIL PROTECTED]
Subject: RES: [java-list] Polimorfismo (PARA TERMINAR GERAL)



*** PGP Signature Status: bad
*** Signer: Jose Euclides Jr <[EMAIL PROTECTED]> 
*** Signed: 23/03/01 11:29:32
*** Verified: 23/03/01 16:31:16
*** BEGIN PGP VERIFIED MESSAGE ***

Deixa eu dar minha pequena contribuição...Na minha opinião o polimorfismo é
uma consequência da existência da herança ou seja, está associado a
hierarquia de classes. Sendo assim, estender o conceito de polimorfismo a
metodos(no caso overload), pode criar confusao em termos de conceitos de OO.
Abraços,

José Euclides Júnior
__
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED] 
[EMAIL PROTECTED]
http://euclides.8m.com


- -Mensagem original-
De: Christian Rauh [SMTP:[EMAIL PROTECTED]]
Enviada em: Quinta-feira, 22 de Março de 2001 17:21
Para:   [EMAIL PROTECTED]
Assunto:    Re: [java-list] Polimorfismo

Cleto Henrique Andrade Silva wrote:
> 
> você foi contra a segunda afirmativa quando disse "Dois métodos
> sobrecarregados têm
> o mesmo nome e são a mesma mensagem com parâmetros diferentes.". Se o
> identificador da mensagem é formado pelo nome mais os parâmetros, então,
> dois métodos sobrecarregados com parâmetros diferentes não podem ser a
mesma
> mensagem.

Eu queria dizer: "Dois métodos sobrecarregados têm o mesmo nome e são a
responsta a mesma mensagem quando recebida com parâmetros diferentes."

Christian

- -- 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] 
- -

*** END PGP VERIFIED MESSAGE ***

- -- 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] 
- -

- -- 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] 
- -

-BEGIN PGP SIGNATURE-
Version: PGP 6.5.1

iQCVAwUBOrvmbt0YhuJ3BUxtAQG2qwP/QdDLse1JJtyN46Hyvzq3KPxYieAM+s+r
FSb6WZKBjzbmy03RJDmBr1Sfpm8j1jKV7DqdMm1H91iallV9VULzB4TblnBTuAcr
ZEjATkVpFs/QOAbrANgPbj9LwvouQYSHbFINk7Ro+Bbv4gjOO9Zf1i32utFHTINQ
m2pkVKix2PE=
=CZO/
-END PGP SIGNATURE-

-- 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]
-




RES: [java-list] Polimorfismo e Herança Múltipla

2002-03-25 Thread Anderson Macedo Silva



Esqueça. Só por gambiarra.
Java 
não tem herança múltipla.
 
Anderson Macedo Silva 
Impactools - The wise solution 
that fits Centro 
Empresarial de São Paulo Telefone: 5853-2136 

  -Mensagem original-De: Ary Junior 
  [mailto:[EMAIL PROTECTED]]Enviada em: segunda-feira, 25 de 
  março de 2002 10:58Para: 
  [EMAIL PROTECTED]Assunto: [java-list] Polimorfismo e Herança 
  Múltipla
      Olá pessoal, tô com uma dúvida 
  em relação a implementação de dois conceitos muito importantes da POO em Java, 
  Polimorfismo e Herança Múltipla.
      Bem, imaginemos a classe 
  HomemAranha, consideremos também q o HomemAranha não seja somente o 
  PeterParker, ou seja, eu também posso ser um objeto da classe HomemAranha. Eu 
  herdo da classe Homem, assim como o PeterParker e também vou herdar da clase 
  Aranha. Agora vamos empregar a regra do polimorfismo à classe Homem, pois o 
  meu método expressarDuvida() da classe Homem retorna "Uai sô!!!" enquanto este 
  mesmo método na classe PeterParker retorna "I do not 
  understand!!!".
      E então eu pergunto como fazer 
  isto em Java? Já q não posso herdar de duas classes ao mesmo tempo terei q 
  utilizar uma Interface? Só consegui resolver este problema assim, fazendo com 
  q Homem seja uma interface e Aranha uma classe, sendo assim PeterParker 
  extende de Aranha e implementa Homem. Alguma outra sugestão?
   
  Valeu!!!
   
      
Ary Junior


Re: [java-list] Polimorfismo e Herança Múltipla

2002-03-25 Thread Lincolm Ferreira de Aguiar



Olá Ary,
 
Veja eu faria da seguinte 
forma:
 
  Homem
  |
  
 PeterParker ---> [Aracnídeo]<- 
Aranha
 
A classe PeterParker seria uma 
descendente da classe Homem implementando a interface Aracnídeo. Logo, 
PeterParker seria uma classe Homem com os mesmos comportamentos da classe 
Aranha. O método expressarDuvida() retornaria "Uai sô".
 
Espero ter ajudado,
 
Lincolm Ferreira de 
AguiarWebMaster - QueroProgramar[EMAIL PROTECTED]
 
www.geocities.com/lincolmf

  - Original Message - 
  From: 
  Ary 
  Junior 
  To: [EMAIL PROTECTED] 
  Sent: Monday, March 25, 2002 10:57 
  AM
  Subject: [java-list] Polimorfismo e 
  Herança Múltipla
  
  
  Quer ter seu próprio endereço na Internet?Garanta já o seu e ainda ganhe 
  cinco e-mails personalizados.DomíniosBOL - http://dominios.bol.com.br
  

  
  

      Olá pessoal, tô com uma dúvida 
  em relação a implementação de dois conceitos muito importantes da POO em Java, 
  Polimorfismo e Herança Múltipla.
      Bem, imaginemos a classe 
  HomemAranha, consideremos também q o HomemAranha não seja somente o 
  PeterParker, ou seja, eu também posso ser um objeto da classe HomemAranha. Eu 
  herdo da classe Homem, assim como o PeterParker e também vou herdar da clase 
  Aranha. Agora vamos empregar a regra do polimorfismo à classe Homem, pois o 
  meu método expressarDuvida() da classe Homem retorna "Uai sô!!!" enquanto este 
  mesmo método na classe PeterParker retorna "I do not 
  understand!!!".
      E então eu pergunto como fazer 
  isto em Java? Já q não posso herdar de duas classes ao mesmo tempo terei q 
  utilizar uma Interface? Só consegui resolver este problema assim, fazendo com 
  q Homem seja uma interface e Aranha uma classe, sendo assim PeterParker 
  extende de Aranha e implementa Homem. Alguma outra sugestão?
   
  Valeu!!!
   
      
Ary Junior


[java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-06-30 Thread isaque
Title: LORDz



 
 


  
  

   
      É correto afirmar que o Polimorfismo 
  só pode ser aplicado em classes que tenha Herança??? Alguém pode me ajudar 
  neste conceito?
   
  Cordiais saudações,
  


  Isaque Niche Ramos Jota 
   
  

  Cordiais saudações,
  


  Isaque Niche Ramos Jota   

  (
  (22) 2772-8000(22) 9903-5193

  *
  [EMAIL PROTECTED]

  
  UIN:241967404 
  


Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-01 Thread Conrad
Title: LORDz



É correto sim polimorfismo em java tem os conceitos 
de overwrite e overload, que é rescrita de método e "recarregação" (Não sei se é 
a tradução correta), então não faz sentido falar de polimorfismo senão houver 
herança.
 
Abraços
Conrad peres.

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 8:27 AM
  Subject: [java-list] Polimorfismo só pode 
  ser aplicado em classes que tenha Herança??? 
  
   
   
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? Alguém 
pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



RES: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-02 Thread Marcio Valverde
Title: LORDz



Polimorfismo é o princípio pelo qual 
duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos 
que têm a mesma identificação (assinatura) mas comportamentos distintos, 
especializados para cada classe derivada, usando para tanto uma referência a um 
objeto do tipo da superclasse

  -Mensagem original-De: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED]Enviada em: sexta-feira, 27 de 
  junho de 2003 08:27Para: 
  [EMAIL PROTECTED]Assunto: [java-list] Polimorfismo só pode 
  ser aplicado em classes que tenha Herança??? 
   
   
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? Alguém 
pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-02 Thread diego
Title: LORDz



Não necessariamente.
Quando vc vai sobrecrever um método que está na 
classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando você 
declara vários métodos com a mesma assinatura, mas que recebem parâmetros 
diferentes, isto também é considerado polimorfismo, e pouco importa, neste caso, 
que você tenha uma classe ancestral.

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 08:27
  Subject: [java-list] Polimorfismo só pode 
  ser aplicado em classes que tenha Herança??? 
  
   
   
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? Alguém 
pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque 
  Niche Ramos Jota 
 

  
Cordiais saudações,

  
  
Isaque 
  Niche Ramos Jota   
  
  
(
(22) 
  2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-03 Thread Leandro Yung
Title: LORDz



É parcialmente correto, Overwrite é aplicável 
apenas para classes que tenham herança.
No entanto, Overload pode ser aplicado para 
qualquer classe, com ou sem herança.
 

  - Original Message - 
  From: 
  Conrad 
  To: [EMAIL PROTECTED] 
  Sent: Monday, June 30, 2003 5:15 PM
  Subject: Re: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
  É correto sim polimorfismo em java tem os 
  conceitos de overwrite e overload, que é rescrita de método e "recarregação" 
  (Não sei se é a tradução correta), então não faz sentido falar de polimorfismo 
  senão houver herança.
   
  Abraços
  Conrad peres.
  
- Original Message - 
From: 
[EMAIL PROTECTED] 

To: [EMAIL PROTECTED] 
Sent: Friday, June 27, 2003 8:27 
AM
Subject: [java-list] Polimorfismo só 
pode ser aplicado em classes que tenha Herança??? 

 



  

   
      É correto afirmar que o 
  Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
  Alguém pode me ajudar neste conceito?
   
  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota 
   
  

  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota   

  (
  (22) 2772-8000(22) 9903-5193

  *
  [EMAIL PROTECTED]

  
  UIN:241967404 
  


Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-04 Thread Antonio Oliveira
Title: LORDz



Caros,
 
Para que ocorra polimorfismo se faz necessária a 
existência de herança de uma classe (abstrata de preferência) ou a implementação 
de uma interface. 
 
PS: 
 1) Não vamos confundir o conceito de 
polimorfismo com o de sobrecarga. O segundo ocorre quando temos em uma mesma 
classe, métodos com  nomes iguais e assinaturas 
diferentes.
 2) O conceito de polimorfismo não é da 
linguagem de programação Java, mas sim da Orientação a Objetos.
 
 
[]
 

  - Original Message - 
  From: 
  diego 
  To: [EMAIL PROTECTED] ; [EMAIL PROTECTED] 
  Sent: Tuesday, July 01, 2003 12:06 
  PM
  Subject: Re: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
  Não necessariamente.
  Quando vc vai sobrecrever um método que está na 
  classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando 
  você declara vários métodos com a mesma assinatura, mas que recebem parâmetros 
  diferentes, isto também é considerado polimorfismo, e pouco importa, neste 
  caso, que você tenha uma classe ancestral.
  
- Original Message - 
From: 
[EMAIL PROTECTED] 

To: [EMAIL PROTECTED] 
Sent: Friday, June 27, 2003 08:27
Subject: [java-list] Polimorfismo só 
pode ser aplicado em classes que tenha Herança??? 

 



  

   
      É correto afirmar que o 
  Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
  Alguém pode me ajudar neste conceito?
   
  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota 
   
  

  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota   

  (
  (22) 2772-8000(22) 9903-5193

  *
  [EMAIL PROTECTED]

  
  UIN:241967404 
  


RES: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-04 Thread Cristiano S. Neves
Title: LORDz



polimorfismo 
ou sobrecarga de métodos?
 Cristiano 
S. NevesGerente de TIPrumos Interativa 
Ltda.F   55 226 
7951E   [EMAIL PROTECTED]U   http://www.prumos.com.br 


  -Mensagem original-De: diego 
  [mailto:[EMAIL PROTECTED]Enviada em: terça-feira, 1 de 
  julho de 2003 12:07Para: [EMAIL PROTECTED]; 
  [EMAIL PROTECTED]Assunto: Re: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  Não necessariamente.
  Quando vc vai sobrecrever um método que está na 
  classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando 
  você declara vários métodos com a mesma assinatura, mas que recebem parâmetros 
  diferentes, isto também é considerado polimorfismo, e pouco importa, neste 
  caso, que você tenha uma classe ancestral.
  
- Original Message - 
From: 
[EMAIL PROTECTED] 

To: [EMAIL PROTECTED] 
Sent: Friday, June 27, 2003 08:27
Subject: [java-list] Polimorfismo só 
pode ser aplicado em classes que tenha Herança??? 

 



  

   
      É correto afirmar que o 
  Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
  Alguém pode me ajudar neste conceito?
   
  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota 
   
  

  Cordiais saudações,
  


  Isaque Niche Ramos 
Jota   

  (
  (22) 2772-8000(22) 9903-5193

  *
  [EMAIL PROTECTED]

  
  UIN:241967404 
  


Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-05 Thread Leandro Fernandes Afonso
Title: LORDz



Isaque,
 
Polimorfismo é a característica que uma classe tem 
de tratar diferentes tipos de dados de acordo como forem passados para 
ela.
 
ex: uma método chamado soma() que possa 
tratar:
1+1=2
'java '+'Linux'='Java Linux'
e assim por diante.
 
este fato de polimorfismo ser dependente de herança 
não é bem verdade, pois são coisas distintas.
 
Herança já é quando uma classe herda propriedades 
de uma superclasse = herança simples; de mais de uma classe= herança multipla 
(mais complexo)
 
espero ter ajudado.
 
Leandro

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 8:27 AM
  Subject: [java-list] Polimorfismo só pode 
  ser aplicado em classes que tenha Herança??? 
  
   
   
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? Alguém 
pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-05 Thread Cesar Fernando Moro
Classicamente chamamos de polimorfismo a escolha (tardia), em tempo de 
execução, do método que será efetivamente executado quando enviamos uma 
mensagem para um objeto que está dentro de uma variável, por exemplo. A 
escolha do método a ser executado, depende do objeto que está recebendo 
a mensagem, e não da mensagem em si. Uma mesma mensagem enviada a 
objetos diferentes pode disparar comportamentos distintos.

Por outro lado também encontramos na literatura a menção de 
"polimorfismo em tempo de execução" descrita no parágrafo anterior e 
"polimorfismo em tempo de compilação" que seria a escolha do método de a 
ser executado de acordo com a lista de parâmetros enviados, ou seja 
sobrecarga.

Concordo que esta nomenclatura diverge da definição clássica de 
polimorfismo, mas pessoalmente eu gosto pois deixa claro o momento da 
escolha em que acontece a escolha de qual método será executado.

Cesar



Antonio Oliveira wrote:
LORDzCaros,

Para que ocorra polimorfismo se faz necessária a existência de herança de uma classe (abstrata de preferência) ou a implementação de uma interface. 

PS: 
 1) Não vamos confundir o conceito de polimorfismo com o de sobrecarga. O segundo ocorre quando temos em uma mesma classe, métodos com  nomes iguais e assinaturas diferentes.
 2) O conceito de polimorfismo não é da linguagem de programação Java, mas sim da Orientação a Objetos.

[]

  - Original Message - 
  From: diego 
  To: [EMAIL PROTECTED] ; [EMAIL PROTECTED] 
  Sent: Tuesday, July 01, 2003 12:06 PM
  Subject: Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança??? 

  Não necessariamente.
  Quando vc vai sobrecrever um método que está na classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando você declara vários métodos com a mesma assinatura, mas que recebem parâmetros diferentes, isto também é considerado polimorfismo, e pouco importa, neste caso, que você tenha uma classe ancestral.
- Original Message - 
From: [EMAIL PROTECTED] 
To: [EMAIL PROTECTED] 
Sent: Friday, June 27, 2003 08:27
    Subject: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança??? 





  É correto afirmar que o Polimorfismo só pode ser aplicado em classes que tenha Herança??? Alguém pode me ajudar neste conceito?

  Cordiais saudações,
Isaque Niche Ramos Jota 
   

 
  Cordiais saudações,
Isaque Niche Ramos Jota 
   
( (22) 2772-8000
(22) 9903-5193 
* [EMAIL PROTECTED] 
   UIN:241967404  

 



--
--
Cesar Fernando Moro - Email: [EMAIL PROTECTED] - ICQ: 157573186
  System Analist/Professor - http://cfmoro.hopto.org
   State University of Maringa - PR - Brazil - Fone:+055-44-261-4324
--
"There never was darkness or a problem that could defeat the sunrise or 
hope."
 Bern Williams



-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-


Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-06 Thread Joao
Title: LORDz



Parabéns Antonio, 
 
    Fez a lição de casa. Infelizmente, muita 
gente confunde sobrecarga com polimorfismo.
 
    O polimorfismo é uma arte e deve ser 
tratado como tal e as possibilidades que ele abre em Java são 
incríveis.
 
    A possibilidade de carregar um objeto filho 
com um handle do pai apenas por não sabermos de que tipo de 
filho ele é, e deixar esta responsabilidade com o java que vai se 
encarregar de executar o método do filho apropriado, permite uma redução de 
códigos fantástica. Aplicando estes conceitos já criei classes inteiras onde 
nenhum if foi necessário, pois o java sabe "se" é isto ou aquilo.
 
    Joao

  - Original Message - 
  From: 
  Antonio 
  Oliveira 
  To: [EMAIL PROTECTED] 
  Sent: Thursday, July 03, 2003 8:30 
  AM
  Subject: Re: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
  Caros,
   
  Para que ocorra polimorfismo se faz necessária a 
  existência de herança de uma classe (abstrata de preferência) ou a 
  implementação de uma interface. 
   
  PS: 
   1) Não vamos confundir o conceito de 
  polimorfismo com o de sobrecarga. O segundo ocorre quando temos em uma mesma 
  classe, métodos com  nomes iguais e assinaturas 
  diferentes.
   2) O conceito de polimorfismo não é da 
  linguagem de programação Java, mas sim da Orientação a Objetos.
   
   
  []
   
  
- Original Message - 
From: 
diego 
To: [EMAIL PROTECTED] ; [EMAIL PROTECTED] 

Sent: Tuesday, July 01, 2003 12:06 
PM
Subject: Re: [java-list] Polimorfismo 
só pode ser aplicado em classes que tenha Herança??? 

Não necessariamente.
Quando vc vai sobrecrever um método que está na 
classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando 
você declara vários métodos com a mesma assinatura, mas que recebem 
parâmetros diferentes, isto também é considerado polimorfismo, e pouco 
importa, neste caso, que você tenha uma classe ancestral.

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 
  08:27
  Subject: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
   
  
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
Alguém pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



RE: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-07 Thread Moreira Rogerio-WRM061
Title: LORDz



Srs,
 
Acredito que valha a pena acrescentar algumas explicações... Quando se 
fala de polimorfismo, significa que um objeto pode assumir diversas formas. 
Portanto, se um objeto "obj", que é uma instância de uma classe Classe1 e que 
implemente duas interfaces Ifc1 e Ifc2 podemos ter os seguintes casos 
(simplificado):
 

public class Classe1 implements Ifc1, Ifc2 
{
public static void 
main(String[] args) {
Classe1 obj = new Classe1();
Ifc1 i1 = obj;
Ifc2 i2 = (Ifc2)i1;
Classe1 obj2 = (Classe1)i2;
}
Perceba que um único objeto assume diversas formas diferentes 
(polimorfismo).
 
[s]
 
rogério.
 

  -Original Message-From: Leandro Yung 
  [mailto:[EMAIL PROTECTED]Sent: Wednesday, July 02, 2003 7:38 
  AMTo: [EMAIL PROTECTED]Subject: Re: [java-list] 
  Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
  
  É parcialmente correto, Overwrite é aplicável 
  apenas para classes que tenham herança.
  No entanto, Overload pode ser aplicado para 
  qualquer classe, com ou sem herança.
   
  
- Original Message - 
From: 
Conrad 
To: [EMAIL PROTECTED] 
Sent: Monday, June 30, 2003 5:15 
PM
Subject: Re: [java-list] Polimorfismo 
só pode ser aplicado em classes que tenha Herança??? 

É correto sim polimorfismo em java tem os 
conceitos de overwrite e overload, que é rescrita de método e "recarregação" 
(Não sei se é a tradução correta), então não faz sentido falar de 
polimorfismo senão houver herança.
 
Abraços
Conrad peres.

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 8:27 
  AM
  Subject: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
   
  
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
Alguém pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-08 Thread Diogo Erdmann Valls
A sobrecarga É um tipo de polimorfismo. É considerado Polimorfismo estático.

Antonio Oliveira wrote:

Caros,
 
Para que ocorra polimorfismo se faz necessária a existência de herança 
de uma classe (abstrata de preferência) ou a implementação de uma 
interface.
 
PS:
 1) Não vamos confundir o conceito de polimorfismo com o de sobrecarga. 
O segundo ocorre quando temos em uma mesma classe, métodos com  nomes 
iguais e assinaturas diferentes.
 2) O conceito de polimorfismo não é da linguagem de programação Java, 
mas sim da Orientação a Objetos.
 
 
[]
 

- Original Message -
*From:* diego <mailto:[EMAIL PROTECTED]>
*To:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ;
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
*Sent:* Tuesday, July 01, 2003 12:06 PM
    *Subject:* Re: [java-list] Polimorfismo só pode ser aplicado em
classes que tenha Herança???
Não necessariamente.
Quando vc vai sobrecrever um método que está na classe pai, sem
sombras de dúvida você precisa ter uma herança, mas quando você
declara vários métodos com a mesma assinatura, mas que recebem
parâmetros diferentes, isto também é considerado polimorfismo, e
pouco importa, neste caso, que você tenha uma classe ancestral.
- Original Message -
*From:* [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
*To:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
*Sent:* Friday, June 27, 2003 08:27
    *Subject:* [java-list] Polimorfismo só pode ser aplicado em
classes que tenha Herança???
 

 
É correto afirmar que o Polimorfismo só pode ser aplicado em
classes que tenha Herança??? Alguém pode me ajudar neste conceito?
 
*Cordiais saudações,
*
*Isaque Niche Ramos Jota *

 
/ /

/*Cordiais saudações,*
/
*Isaque Niche Ramos Jota *
 
( 	(22) 2772-8000
(22) 9903-5193
* 	[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
	UIN:241967404



-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-



Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-09 Thread isaque
Title: LORDz



    Andei pesquisando 
mais um pouco com o Coordenador dos cursos de programação da Faculdade 
e encontrei a resposta, mas está em oposição com a maioria das 
respostas que recebi, como o assunto é interessante, decidi compartilha 
com vocês  a resposta.  
 
    Para ser 
polimorfica a operacao tem que ter a mesma assinatura e isto inclui os 
parametros formais.
    Quanto a 
pergunta em si, a resposta e NAO, pois e possivel se utilizar polimorfismo via a 
utilizacao de Interfaces (que e uma estrutura similar a classe que serve apenas 
para definir um grupo de operacoes que deve ser implmeentado pelas classes 
que realizam ou implementam a interface.
    Apenas para 
programadores C++, a visao de polimorfismo fica restrita a heranca de classe, 
pois nao existem em c++ o conceito de interface
 
    Além disso, se 
a linguagem nao for fortemente tipada (exigir declaracao de tipo), como e o caso 
por exemplo do smalltalk, o polimorfismo pode ocorrer em qualquer tempo, 
bastando para isso que as classes apresentem metodos ou operacoes polimorficas, 
mesmo sem pertecerem a mesma hierarquia de classe.
 
Marcelo Feres

  - Original Message - 
  From: 
  Antonio 
  Oliveira 
  To: [EMAIL PROTECTED] 
  Sent: Thursday, July 03, 2003 8:30 
  AM
  Subject: Re: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
  Caros,
   
  Para que ocorra polimorfismo se faz necessária a 
  existência de herança de uma classe (abstrata de preferência) ou a 
  implementação de uma interface. 
   
  PS: 
   1) Não vamos confundir o conceito de 
  polimorfismo com o de sobrecarga. O segundo ocorre quando temos em uma mesma 
  classe, métodos com  nomes iguais e assinaturas 
  diferentes.
   2) O conceito de polimorfismo não é da 
  linguagem de programação Java, mas sim da Orientação a Objetos.
   
   
  []
   
  
- Original Message - 
From: 
diego 
To: [EMAIL PROTECTED] ; [EMAIL PROTECTED] 

Sent: Tuesday, July 01, 2003 12:06 
PM
Subject: Re: [java-list] Polimorfismo 
só pode ser aplicado em classes que tenha Herança??? 

Não necessariamente.
Quando vc vai sobrecrever um método que está na 
classe pai, sem sombras de dúvida você precisa ter uma herança, mas quando 
você declara vários métodos com a mesma assinatura, mas que recebem 
parâmetros diferentes, isto também é considerado polimorfismo, e pouco 
importa, neste caso, que você tenha uma classe ancestral.

  - Original Message - 
  From: 
  [EMAIL PROTECTED] 
  
  To: [EMAIL PROTECTED] 
  Sent: Friday, June 27, 2003 
  08:27
  Subject: [java-list] Polimorfismo só 
  pode ser aplicado em classes que tenha Herança??? 
  
   
  
  
  


  
 
    É correto afirmar que o 
Polimorfismo só pode ser aplicado em classes que tenha Herança??? 
Alguém pode me ajudar neste conceito?
 
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota 
 

  
Cordiais saudações,

  
  
Isaque Niche Ramos 
  Jota   
  
(
(22) 2772-8000(22) 9903-5193
  
*
[EMAIL PROTECTED]
  

UIN:241967404 



Re: Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-03 Thread Bruno do Amaral Dias Baptista

Nao seria "sobrecarga"?

[]'s,

  Bruno do Amaral

On Mon, 30 Jun 2003, Conrad wrote:

> LORDzÉ correto sim polimorfismo em java tem os conceitos de overwrite e overload, 
> que é rescrita de método e "recarregação" (Não sei se é a tradução correta), então 
> não faz sentido falar de polimorfismo senão houver herança.
>
> Abraços
> Conrad peres.
>   - Original Message -
>   From: [EMAIL PROTECTED]
>   To: [EMAIL PROTECTED]
>   Sent: Friday, June 27, 2003 8:27 AM
>   Subject: [java-list] Polimorfismo só pode ser aplicado em classes que tenha 
> Herança???
>
>
>
>
>
>
> É correto afirmar que o Polimorfismo só pode ser aplicado em classes que 
> tenha Herança??? Alguém pode me ajudar neste conceito?
>
> Cordiais saudações,
>   Isaque Niche Ramos Jota
>
>
>
> Cordiais saudações,
>   Isaque Niche Ramos Jota
>
>   ( (22) 2772-8000
>   (22) 9903-5193
>   * [EMAIL PROTECTED]
>  UIN:241967404
>
>
>
>


-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-



Re: [java-list] Re: [java-list] Polimorfismo só pode ser aplicado em classes que tenha Herança???

2003-07-03 Thread Hélio Brandão
Não é obrigatório usar Herança para se obter
o polimorfismo. Em Java é possivel
usar polimorfismo com o uso de interfaces.
Duas classes que não
teem correlação alguma podem implementar
o polimorfismo desde que as duas implementem
uma mesma interface.
Um material muito bom sobre essa questão pode
ser encontrado no Livro "Thinking in Java" 
Livro gratuito que pode ser baixado pela internet
(Livro muito bom)


 
Abraços
Conrad peres.
- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, June 27, 2003 8:27 AM
Subject: [java-list] Polimorfismo só pode ser aplicado
em classes que tenha Herança???






___
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção 
contra spam.
http://br.mail.yahoo.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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-



Re: RES: [java-list] Polimorfismo só pode ser aplicado em classes que tenha =?iso-8859-1?Q?Heran=E7a????=

2003-07-09 Thread JoséNeto
Isaque, 

O que você perguntou é conhecido como 'Sobrecarga de Métodos', 

Polimorfismo já é outra coisa.veja abaixo: 

public class A{
 public M1(){
...
 }
} 

public class B{
 public M1(){
   ...
 }
 public M2(){
  ...
 }
} 

public static void main (String args[]){
 A objA = new A();
 B objb = new B(); 

 objA.M1();  -- chama o método M1 do objeto A
 objB.M1();  -- chama o método M1 do objeto B 

 objA = objB; 

 objA.M1();  -- chama o método M1 do objeto B, pois na linha 
anterior fizemos um polimorfismo, ou seja, fizemos com que o objeto da 
classe A tomasse a forma do objeto B..isso é polimorfismo... 

Se eu tiver errado me corrijamcaso contrário, espero que tenha 
ajudado... 

Abraços 

José Neto 



Cristiano S. Neves escritos: 

LORDzpolimorfismo ou sobrecarga de métodos? 

Cristiano S. Neves
Gerente de TI 

Prumos Interativa Ltda.
F   55 226 7951
E   [EMAIL PROTECTED]
U   http://www.prumos.com.br
  -Mensagem original-
  De: diego [mailto:[EMAIL PROTECTED]
  Enviada em: terça-feira, 1 de julho de 2003 12:07
  Para: [EMAIL PROTECTED]; [EMAIL PROTECTED]
  Assunto: Re: [java-list] Polimorfismo só pode ser aplicado em classes que
tenha Herança??? 

  Não necessariamente.
  Quando vc vai sobrecrever um método que está na classe pai, sem sombras de
dúvida você precisa ter uma herança, mas quando você declara vários métodos
com a mesma assinatura, mas que recebem parâmetros diferentes, isto também é
considerado polimorfismo, e pouco importa, neste caso, que você tenha uma
classe ancestral.
- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, June 27, 2003 08:27
Subject: [java-list] Polimorfismo só pode ser aplicado em classes que
tenha Herança??? 

 

 

  É correto afirmar que o Polimorfismo só pode ser aplicado em
classes que tenha Herança??? Alguém pode me ajudar neste conceito? 

  Cordiais saudações,
Isaque Niche Ramos Jota 

 

  Cordiais saudações,
Isaque Niche Ramos Jota 

( (22) 2772-8000
(22) 9903-5193
* [EMAIL PROTECTED]
   UIN:241967404 

 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.493 / Virus Database: 292 - Release Date: 25/06/03


José Neto 

-- 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-