Java 如何在同一个包中的类上使用扩展?
路径“/utilities/pets/”中有两个.java文件: /实用程序/pets/Animal.java /实用程序/pets/Cat.java 以及路径顶部的Test.java文件 在my Animal.java文件中,有以下代码:Java 如何在同一个包中的类上使用扩展?,java,package,extends,Java,Package,Extends,路径“/utilities/pets/”中有两个.java文件: /实用程序/pets/Animal.java /实用程序/pets/Cat.java 以及路径顶部的Test.java文件 在my Animal.java文件中,有以下代码: package utilities.pets; public class Animal implements Cloneable { //bunch of private attributes and public constructors and s
package utilities.pets;
public class Animal implements Cloneable {
//bunch of private attributes and public constructors and setters-getters
}
从Test.java中,我可以导入Animal类并创建动物实例,没有任何问题,直到这里都很好
现在我想让我的Cat.java成为一个继承自Animal的类,但如果我在Cat.java中键入以下代码:
package utilities.pets;
public class Cat extends Animal {
}
编译器告诉我它找不到符号动物
如果我尝试这个,也会发生同样的情况
package utilities.pets;
public class Cat extends utilities.pets.Animal {
}
我不知道如何解决这个问题。。。非常感谢您的帮助。要通过命令行编译多个文件,您必须提供所有必需的
.java
文件,如:
javac Cat.java Animal.java
在同一软件包中,您可以使用*
通配符,该通配符将拾取当前目录中所有必需的文件:
javac *.java
除此之外,对于您的案例,我将Cat
和Animal
移动到model
包中,并在父目录中创建了Test
类,因此命令如下所示:
javac Test.java model/*.java
您可以根据需要更改
模型
,并且正在Test.java
文件的目录中调用javac
命令。公共类Gato extends ANAME
是正确的。真正的问题是,在编译时,由于某种原因,您没有选择Animal
类。您究竟是如何构建代码的?(另外,如果你没有使用现代的IDE,我不能高度建议你尽快开始这样做。很抱歉,我在翻译帖子时把名字弄错了(因为我的代码实际上是西班牙语的),只是在帖子中修复了它,但同样的问题。像往常一样,我正试图通过带有“javaccat.java”的windows命令行编译Cat.java。我得到这个错误:Cat.java:4:error:找不到符号公共类Cat{^symbol:class Animal 1 Error如果您使用javac Animal.java Cat.java
,那会怎么样?这似乎是可行的,没有编译器错误,并且创建了Cat.class,谢谢你的帮助!请注意,即使已经编译了Animal
和Cat
。如果你只想编译源代码的一个子集依赖于其他源文件的文件,则必须以不会导致编译的方式告诉javac
其他源文件的位置。请特别参阅“附加源文件”部分(注意,该链接是针对Java 13的)。非常感谢,这似乎是可行的,Cat.class被创建了,我对不知道这一点感到很愚蠢!真是太感谢你了!!!!np,因为你可能已经看到了在根目录中使用*
通配符的可能性。在根目录下有更多的包时,你可以使用javac*.java model/*.java utils/*.java
。之后cmd编译器已经使用完毕,建议您跳转到某个IDE,然后利用依赖关系管理器(Gradle、Maven等)