繁体   English   中英

同一包内的Java继承未找到类

[英]Java Inheritance within the same package not finding class

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

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

公共类敌人{

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 参数构造函数:)。 希望有帮助。

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

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

javac src/enemy/Enemy.java

其他班级也类似。

(代表问题作者发表)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM