Ol�,

Sou um integrante da dicas-list a tempos e n�o pude deixar de prestar
aten��o na dica enviada pelo sr. Walter Augusto Werner. 
O problema das classes dele n�o � o java e sim a maneira que ele implementou
o exemplo.
----------------------------------------------------
erro no exemplo 1.

Object o = new Integer(1);
B b = new B();
b.x(o);

Quando a gente "constroi" uma classe pai com um construtor de uma de suas
subclasses, o pai ainda continua sendo da classe pai, apenas os m�todos que
ambos tem em comum, e foram sobre escritos, eh que muda. Portanto o "Object
o" ainda � um Object apesar de ser inicializado com o  construtor da classe
Integer. Para que esse metodo fique do jeito que se espera, basta fazer um
cast. 

ex.: b.x((Integer)o);

-----------------------------------------------------------
erro no exemplo 2

Integer i = new Integer(1);
A a = new B();
a.x(i);

Esse erro � muito parecido com o primeiro, pois no momento em que ele
inicializa a variavel 'a' da Classe "A" com o construtor da classe "B",
apenas os m�todos em comum s�o alterados, e como a classe "A" n�o tem o
m�todo "x(Integer i)" ele sempre executa o metodo "x(Object o)". Segue o
exemplo de como deveria ser a implementa��o da classe "B" para que o
resultado esperado pelo nosso amigo aconte�a.

ex.:

public class B extends A {
        public void x(Integer i) {
                System.out.println("Metodo Filho e � um Integer");
        }
        public void x(Object o) {
                if (o instanceof Integer) {
                        this.metodo((Integer)o);
                } else {
                        super.metodo(o);
                }
        }
}


Mas se voc� prestar a aten��o com a corre��o do segundo exemplo, o primeiro
tb ser� corrigido.

[]'s

Marcus Vinicius Lewis Martins
RIO GRANDE ENERGIA S/A - Telem�tica 
mailto:[EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED]
--------------------------------------------------------------
TRACE SISTEMAS LTDA 
http://www.tracesistemas.com.br 
--------------------------------------------------------------


Responder a