Polimorfismo no erro de Java: não consegue encontrar Símbolo

Mrak Régua:

Eu apenas comecei a aprender programação orientada a objeto da cabeça primeiro livro java.It disse que o polimorfismo me permite criar uma matriz do tipo superclasse e, em seguida, ter todas as subclasses como a matriz elements.But quando eu tentei escrever código usando o mesmo princípios que correu em erro dizendo error: cannot find symbolque eu fiz as classes superclasse foi animais ea classe cão estendido a classe animal que tem um método buscar própria, mas quando eu referenciado a variável cão como animais não funcionou aqui está o código

A classe animal

public class animal{
String family;
String name;
public void eat()
{
    System.out.println("Ghap Ghap");
}
public void roam()
{
    System.out.println("paw paw");
}
}

O cão Classe

public class dog extends animal{
public void fetch(){
    System.out.println("Auoooooooo");
}
}

A Classe Tester

public class tester{
public static void main(String args[]){
    animal doggie = new dog();
    doggie.fetch();
    doggie.eat();
    doggie.roam();
}

}

O erro

tester.java:4: error: cannot find symbol
doggie.fetch();
      ^
symbol:   method fetch()
location: variable doggie of type animal
1 error
Yousaf:

Ao usar polimorfismo, se você criar uma instância da subclasse e armazenar a sua referência em uma variável do tipo superclasse, você só pode chamar esses métodos na instância recém-criada, que estão presentes na super classe .

Em seu código, você criou uma instância de dogclasse e armazenados a sua referência no doggieque é do tipo animal(super classe de cão), em tal caso, você não pode chamar qualquer método na doginstância de classe que não está disponível na animalclasse.

fetchmétodo não é definido na animalclasse, portanto, você obter o erro.

Solução

Ou defina o fetchmétodo na animalclasse

OU

mudança

animal doggie = new dog();

para

dog doggie = new dog();

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=183882&siteId=1
Recomendado
Clasificación