не удается найти символ Ошибка в Java - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть 3 файла класса, когда я компилирую класс, который расширяет другой класс, выдает ошибку компиляции, как символ не найден.

public class  Animal {  
    public static void hide() {  
        System.out.println("Hide Method Of Animal");  
    }  

    public void override() {  
        System.out.println("The Override method of Animal");  
    }  
}  

public class Cat extends Animal {  
    public static void hide() {  
        System.out.println("Hide Method Of Cat");  
    }  

    public void override() {  
        System.out.println("The Override method of Animal");  
    }  
}  

public class TestAnimal {  
    public static void main(String args[]) {  
        Cat myCat = new Cat();  
        Animal myAnimal =  (Animal)myCat;  
        myAnimal.hide();  
        myAnimal.override();  
    }  
}  

Я получаю эту ошибку:

TestAnimal.java:6: cannot find symbol  
symbol  : class Cat  
location: class com.Test.TestAnimal  
            Cat myCat = new Cat();  
            ^  

Любая помощь по этому вопросу ???

Ответы [ 2 ]

4 голосов
/ 12 декабря 2011

Нет ничего плохого в вашем коде.Вот что я сделал.Посмотрите, все ли вы сделали правильно:

$ cat > Animal.java
public class  Animal
{
    public static void hide()
    {
    System.out.println("Hide Method Of Animal");
    }

    public void override()
    {
    System.out.println("The Override method of Animal");
    }
}

$ cat > Cat.java
public class Cat extends Animal
{
    public static void hide()
    {
    System.out.println("Hide Method Of Cat");
    }

    public void override()
    {
    System.out.println("The Override method of Animal");
    }
}

$ cat > TestAnimal.java
public class TestAnimal
{
    public static void main(String args[])
    {
    Cat myCat = new Cat();
    Animal myAnimal =  (Animal)myCat;
    myAnimal.hide();
    myAnimal.override();
    }
}

$ javac TestAnimal.java

$ ls
Animal.class  Animal.java  Cat.class  Cat.java  TestAnimal.class  TestAnimal.java

$ java TestAnimal
Hide Method Of Animal
The Override method of Animal

Я использовал copy-paste, чтобы получить ваш код, как вы можете видеть.Обратите внимание, что после компиляции есть три .class файла в дополнение к вашим .java файлам.

4 голосов
/ 12 декабря 2011

Да, посмотрите, есть ли файл .class для каждого файла .java после компиляции.Если нет, убедитесь, что у каждого есть файл .class.

При запуске используйте аргумент -classpath, чтобы указать каталог, в котором находятся все файлы .class.

Звучите выкак вы могли бы использовать некоторые инструкции по компиляции и запуску Java.

http://www.horstmann.com/bigj/help/compiler/tutorial.html

Вот ответ о подаче ложки:

  1. Перейдите к вашему d: \ Mine \CoreJava \ Каталог программирования в командной оболочке.
  2. Создайте каталог / classes
  3. Компилируйте, набрав javac -d classes -cp classes src / *. Java
  4. Вы должны увидетьвсе файлы .class, созданные сразу.
  5. Запустите, набрав java -cp.; classes FullClassNameOfYourMain
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...