同一个包中的Java继承没有找到类

时间:2017-11-18 16:29:55

标签: java inheritance package

我在同一个文件夹和包中有两个类。它们的位置是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在同一个文件夹和包装中可以继承敌人。

3 个答案:

答案 0 :(得分:0)

这是因为你的baseEnemy Class中没有构造函数。如果您将其更改为:

公共阶级敌人{

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;
}

public Enemy() {
}
}

然后

public class baseEnemy extends Enemy {

public baseEnemy(String name) {
    super(name);
}
}

它能够提供名称。理想情况下,0级类应始终具有0参数构造函数:)。希望有所帮助。

答案 1 :(得分:0)

javac ~/Documents/Assignments/Ass4/Code/src/enemy/Enemy.java. 

没有。你应该在~/Documents/Assignments/Ass4/Code,并发出

javac src/enemy/Enemy.java

和其他类似。

答案 2 :(得分:0)

(代表作者提问)

所以最初我制作了目录,“Code”有一个大写字母c。我然后看到了这个并用一个小c创建了一个新文件夹。我没有意识到的是我的原子代码引用了大写C文件夹中的那个。