Como isso funciona?

7 respostas
Raff

Pessoal eu gostaria de saber como isso funciona...

public static void main(String[] args){

Animal animal = new Cachorro();

}

OBS : Suponhando que temos as Classes Animal e Cachorro existam.. o que isso referencia ? o que acontece etc ??? grato pessoalll!

7 Respostas

Abdon

Isto se chama polimorfismo!

LPJava

vc poderia chamar os metodos que foram subscrito pela class cachorro:

class Animal{
void cor(){}
}
class Cachorro{
void cor(){System.out.println("preto");}
}
class Canil{
public static void main(String[]ra){
Animal a = new Cachorro();
a.cor();//chama o subscrito
//imprime a cor preto :D
}
}

flw!!

junioma

Bem, animal vai conter referencia a um objeto do tipo cachorro .

Abdon

Não so os metodos sobreescritos mas todos os metodos da classe Animal já que, para seu codigo compilar é necessario que seja:

public class Cachorro extends Animal

ou mesmo

public class Cachorro implements Animal

Neste caso vc so teria visibilidade para os metodos descritos na interface Animal.

Isso funciona prq:

  1. Animal é uma classe qualquer e Cachorro é uma subclasse de animal

  2. Animal é uma interface e a classe Cachorro implementa ela.

LPJava o seu caso nem vai compilar já que não existe herança/interface nas classes.

D

Procure por Polimorfismo no google…

E procure uma gramática, amigo…

Suponhando não dá…

[]'s

Raff

du123:
Procure por Polimorfismo no google…

E procure uma gramática, amigo…

Suponhando não dá…

[]'s

Puts pensei que esse forum era sobre Java e não lingua Portuguesa. valew professor !

LPJava

Abdon:

vc poderia chamar os metodos que foram subscrito pela class cachorro:

Não so os metodos sobreescritos mas todos os metodos da classe Animal já que, para seu codigo compilar é necessario que seja:

public class Cachorro extends Animal

ou mesmo

public class Cachorro implements Animal

Neste caso vc so teria visibilidade para os metodos descritos na interface Animal.

Isso funciona prq:

  1. Animal é uma classe qualquer e Cachorro é uma subclasse de animal

  2. Animal é uma interface e a classe Cachorro implementa ela.

LPJava o seu caso nem vai compilar já que não existe herança/interface nas classes.

assim… mais ele prguntou o pq de ter Animal a = new Cachorro() isso é uma das vantagens o metodo disponivel em animal pode ser chamado dessa forma ou assim Animal a = new Animal() nao quis desviar o foco… eu demorei um bom tempo ate isso entrar na mente… pois tem hora que confudi bastante… principalmente quando é visto pela primeira vez…

Criado 21 de maio de 2007
Ultima resposta 22 de mai. de 2007
Respostas 7
Participantes 5