2017-11-18 26 views
-1

同じフォルダとパッケージ内に2つのクラスがあります。それらの位置はcode/src/enemyです。同じパッケージ内のJava継承クラスが見つからない

:3: error: cannot find symbol 
public class baseEnemy extends Enemy{ 
symbol: class 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); 
} 

}

:これらの2つのクラスですJavac。 baseEnemyが同じフォルダとパッケージに入っているときに、baseEnemyが敵を継承できない理由はわかりません。

+0

javacをコンパイルする方法を書くことができますか?フォルダの正確な行。 – vbuhlev

+0

javac〜/ Documents/Assignments/Ass4/Code/src/enemy/Enemy.java。そして、これは大丈夫です。その後、javac〜/ Documents/Assignments/Ass4/Code/src/enemy/baseEnemy.javaがエラーを投げた。 –

+1

私はjavacを直接使用していませんが、両方のファイルをjavacに渡す必要があります。例えばjavacパス/ to/Aパス/ to/C – vbuhlev

答えて

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

いいえ。~/Documents/Assignments/Ass4/Codeであること、および他のクラスの

javac src/enemy/Enemy.java 

と同様に発行する必要があります。

+0

私はばかだと私は誓います。だから私は最初にディレクトリを作成し、 "コード"は資本cを持っていた。私はこれを見て、小さなcで新しいフォルダを作った。私が気づいていなかったのは、私の原子コードが、大文字のCのフォルダにあるものを参照していたということでした。遅れている紳士や紳士の人生は、 –

0

baseEnemyクラスにコンストラクタがないためです。あなたはそれを変更する場合:その後、

public class baseEnemy extends Enemy { 

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

パブリッククラス敵{

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() { 
} 
} 

、名前を養うことができるようになります。理想的にはレベル0クラスは常に0引数のコンストラクタを持つべきです。希望が役立ちます。

+0

あなたは正しいですが、コンパイラがこのエラーの別のメッセージを出すと思います。 – vbuhlev

+0

これは同じエラーをスローします:( –

+0

上記の編集スクリプトを使用して私の最後にコンパイルしてビルドしました。きれいにしてビルドしようとしましたか? –

0

(質問者の代わりに投稿)

私は最初にディレクトリを作成し、 "コード"には大文字のcがありました。私はこれを見て、小さなcで新しいフォルダを作った。私が気づいていなかったのは、私の原子コードがフォルダ内の大文字のCを参照していたということでした。

関連する問題