[Dúvida] Overriding, hiding e referência para objetos

1 resposta
ludodarkness
public class Animal {
    public static void testClassMethod() {
        System.out.println("The class method in Animal.");
    }
    public void testInstanceMethod() {
        System.out.println("The instance method in Animal.");
    }
}
public class Cat extends Animal {
    public static void testClassMethod() {
        System.out.println("The class method in Cat.");
    }
    public void testInstanceMethod() {
        System.out.println("The instance method in Cat.");
    }

    public static void main(String[] args) {
        Cat myCat = new Cat();
        Animal myAnimal = myCat;

        myAnimal.testClassMethod();
        myAnimal.testInstanceMethod();
    }
}

1ª Dúvida: myAnimal é uma referencia do tipo Animal mas está se referindo para um tipo Cat (que contem classes de animal e de cat). Isso é possível? Seria como fazer um int num = float num2, não?

2º Duvida é com relação a diferença entre overriding e hiding... alguém tem algum material que explique de uma outra maneira sobre esse assunto? (estou lendo do site da sun).

Dede já agradeço! e descupa a pergunta acéfala =X

1 Resposta

T
  • É sim, mas não é a mesma coisa que “int num = float num2”.
    Lembre-se que todo gato é um animal, portanto, se você chamar um método de um animal, é o gato que tem de executá-lo.

2º Duvida é com relação a diferença entre overriding e hiding… alguém tem algum material que explique de uma outra maneira sobre esse assunto? (estou lendo do site da sun).

  • override = sobrepôr (isso ocorre com métodos normais que são reimplementados em uma subclasse)
  • hide = esconder (isso ocorre com métodos estáticos que são reimplementados em uma subclasse).

Dede já agradeço! e descupa a pergunta acéfala =X[/quote]

Criado 21 de dezembro de 2006
Ultima resposta 21 de dez. de 2006
Respostas 1
Participantes 2