【发布时间】:2020-09-05 00:34:52
【问题描述】:
我在同一个文件夹和包中有两个类。它们的位置是 code/src/enemy。这是两个类:
package src.enemy;
public class Enemy{
String name = "";
float maxHealth = 100;
float health;
public Enemy(String name) // This made me laugh more than it should
{
this.name = name;
this.health = this.maxHealth;
}
}
和
package src.enemy;
public class baseEnemy extends Enemy{
public baseEnemy(String name)
{
super(name);
}
}
由于某种原因,当我尝试编译它们时,我得到:
:3: error: cannot find symbol
public class baseEnemy extends Enemy{
symbol: class Enemy
我正在使用 Javac 进行编译。我不太确定为什么 baseEnemy 在同一个文件夹和包中时不能继承敌人。
【问题讨论】:
-
你能写出如何使用 javac 编译它们吗?来自哪个文件夹的确切行。
-
javac ~/Documents/Assignments/Ass4/Code/src/enemy/Enemy.java。这编译得很好。然后 javac ~/Documents/Assignments/Ass4/Code/src/enemy/baseEnemy.java 抛出错误。
-
我没有直接用过javac,但是我觉得你必须把两个文件都给javac。例如 javac path/to/A path/to/C
-
当我这样做时,我得到一个不同的错误。我已经将 baseEnemy 类更改为具有参数名称并调用 super(name) 的构造函数。我现在得到的错误是:类 Enemy 中的构造函数 Enemy 不能应用于给定类型;公共类 baseEnemy 扩展 Enemy{ ^ 必需:找到字符串:没有参数原因:实际参数列表和正式参数列表的长度不同
-
使用您当前的代码,并在命令行中指定这两个文件,我能够毫无错误地进行编译。
标签: java inheritance package