opa, eu soh gostaria de complementar que o polimformisfo ilustrado por nosso colega
Rosfran em relacao a sobrecarga de m�todos (mesmo identificador e mesmo conjunto de
par�metros - na mesma classe) � chamado de _polimorfismo estatico_ que � capturado em
tempo de compilacao, e o outro exemplo - que � a redefinicao completa do metodo numa
situacao de heranca, � chamado _polimorfismo din�mico_ por ser capturado em tempo de
execucao.
Imagine o seguinte:
// polimorfismo dinamico
class Carro{
public void acelerar(){
// codigo
}
// mais codigo
}
class CarroEsportivo extends Carro{
public void acelerar(){
// codigo
}
// mais codigo
}
class CarroCorrida extends Carro{
public void acelerar(){
// codigo
}
// mais codigo
}
public class MyCar{
public static void main(String args[]){
CarroEsportivo ce = new CarroEsportivo();
CarroCorrida cc = new CarroCorrida();
Carro car;
//codigo de interacao com o usu�rio para ele escolher em tempo de
execucao uma opcao
if(opcao == 1)
car = ce;
if(opcao == 2)
car = ce;
car.acelerar(); // sempre ser� esse metodo - ele se comportar�
//de forma diferente dependendo do que o usu�rio
selecionar
}
} // fim do codigo da classe
eh isso,
valeu,
Igor Medeiros
-----Original Message-----
From: Rosfran Lins Borges [mailto:[EMAIL PROTECTED]]
Sent: Monday, May 13, 2002 2:11 PM
To: [EMAIL PROTECTED]
Subject: RES: [java-list] sobrescrita de m�todos
De acordo com o texto, os termos 'hide' e 'override' s�o equivalentes.
Override equivale ao esquema de orienta��o a objetos denominado
polimorfismo, ou seja, um m�todo com a mesma assinatura (mesmo identificador
e mesmo conjunto de par�metros) de um outro, que se comporta de maneira
diferente, dependendo do contexto no qual ele � chamado. Um m�todo
polim�rfico (override) necessariamente redefine completamente um outro
m�todo, substituindo todo o corpo do m�todo anterior. J� a sobrecarga
(overloading=mesmos identificadores, lista de par�metros diferentes) tem uma
forma diferente de agir, porque ela pode aproveitar quaisquer das
implementa��es dadas anteriormente ao m�todo de mesmo nome. Portanto, quando
ele diz 'hide', significa mesmo ocultar a implementa��o anterior, atrav�s da
defini��o de uma implementa��o inteiramente nova.
Por exemplo, os m�todos abaixo est�o sobrecarregados:
public void imprimePonto( int x, int y ) {
.....
// implementa��o do m�todo imprimePonto
}
public void imprimePonto( Ponto p ) {
imprimePonto( p.getX(), p.getY() ); // Aproveitamento da
implementa��o do m�todo anterior de mesmo nome
}
E os m�todos a seguir s�o polim�rficos (supondo que as classes Ponto e
Reta herdam ambas de Forma, que define o m�todo "mostra()"):
Classe Ponto:
public void mostra() {
// Mostra ponto
}
Classe Reta:
public void mostra() {
// Mostra reta. N�o � poss�vel aproveitar a implementa��o
original do m�todo mostra(), porque uma refer�ncia a esse m�todo nesse
contexto seria entendida como uma chamada recursiva
}
Outra coisa: n�o � poss�vel fazer polimorfismo com um m�todo est�tico, a
n�o ser que esse novo m�todo seja est�tico tamb�m. No texto, os m�todos
est�ticos s�o chamados de 'class methods' (m�todos de classe), uma vez que
eles n�o est�o vinculados a uma inst�ncia dessa classe, e a sua chamada
inclui a refer�ncia ao nome da classe � qual ele pertence.
Rosfran Lins Borges
Analista de Sistemas - NDS
[EMAIL PROTECTED]
F�ton� Inform�tica e Servi�os
Fone: (61) 328 5060 R.: 204
-----Mensagem original-----
De: Marco Afonso [mailto:[EMAIL PROTECTED]]
Enviada em: segunda-feira, 13 de maio de 2002 09:03
Para: SouJava
Assunto: [java-list] sobrescrita de m�todos
Pessoal,
estou lendo um tutorial para aprender Java e n�o estou
entendendo muito bem um par�grafo sobre sobrescrita de
m�todos.
o texto � o a seguir:
"...Also, a subclass cannot override methods that are
declared static in the superclass. In other words, a
subclass cannot override a class method. A subclass can
hide a static method in the superclass by declaring a
static method in the subclass with the same signature as
the static method in the superclass. "
Qual a diferen�a entre 'override' e 'hide' no texto?
'Hide' � no sentido de escrever somente a assinatura e
n�o implementar nada no m�todo?
Obrigado pela for�a...
__________________________________________________________________________
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
------------------------------ 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]
-------------------------------------------------------------------------
------------------------------ 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]
-------------------------------------------------------------------------