如何在同一个包中对 class 使用扩展?

How do I use extends on a class from within same package?

我在路径“/utilities/pets/”中有两个 .java 文件:

/utilities/pets/Animal.java

/utilities/pets/Cat.java

路径顶部还有一个 Test.java 文件。

在我的 Animal.java 文件中有这段代码:

package utilities.pets;

public class Animal implements Cloneable {
  //bunch of private attributes and public constructors and setters-getters
}

从 Test.java 开始,我可以导入 Animal class 并毫无问题地创建 Animal 实例,到这里为止都很好。

现在我想让我的 Cat.java 成为继承自 Animal 的 class,但是如果我在 Cat.java:

中键入此代码
package utilities.pets;

public class Cat extends Animal {

}

编译器告诉我找不到符号 Animal 如果我尝试这个也会发生同样的事情

package utilities.pets;

public class Cat extends utilities.pets.Animal {

}

我不知道如何解决这个问题...将不胜感激。

要通过命令行编译多个文件,您必须提供所有必需的 .java 文件,例如:

javac Cat.java Animal.java

在同一个包中时,您可以使用 * 通配符,它​​将在当前目录中获取所有必需的文件:

javac *.java

此外,我将 CatAnimal 移至 model 包,并在父目录中创建了 Test class,因此命令看起来像:

javac Test.java model/*.java

您可以根据需要更改 modeljavac 命令在 Test.java 文件的目录中被调用。