我有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();  
            ^  

任何帮助吗???

===============>>#1 票数:4 已采纳

是的,请在编译后查看每个.java文件是否都有一个.class文件。 如果没有,请确保每个都有一个.class文件。

运行时,使用-classpath参数指向所有.class文件所在的目录。

听起来您可以使用一些有关编译和运行Java的指令。

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

这是汤匙喂食的答案:

  1. 在命令外壳中转到d:\\ Mine \\ CoreJava \\ Programming目录。
  2. 创建目录/类
  3. 通过键入javac -d classes -cp classes src / *。java进行编译
  4. 您应该看到一次创建的所有.class文件。
  5. 通过键入java -cp。; classes FullClassNameOfYourMain运行

===============>>#2 票数:4

您的代码绝对没有错。 这就是我所做的。 看看您是否做对了所有事情:

$ 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

如您所见,我使用复制粘贴来获取您的代码。 请注意,编译后,除了.java文件外,还有三个.class文件。

  ask by user1081026 translate from so

未解决问题?本站智能推荐: