私は別のクラス(HotelRoom)から継承しているクラス(スイート)を作成しています。 HotelRoomクラスは、引数(int)を必要とするコンストラクタを持っています。スイートIのコンストラクタでは、super(room)と呼ばれるコンストラクタがあります。 HotelRoomはうまくいきますが、Suiteはコンストラクターエラーを返します。どんな助けでも大歓迎です。ここでは以下の私のコードは次のとおりです。Javaがシンボルを見つけることができません:コンストラクタエラー
public class HotelRoom
{
private int roomNumber;
protected double nightlyRate;
private final int maxRoomNumber = 999;
boolean didEnterCorrectRoomNumber = false;
public HotelRoom(int room)
{
if (room > 0 && room <= 299)
{
nightlyRate = 69.95;
didEnterCorrectRoomNumber = true;
//return didEnterCorrectRoomNumber;
}
else if (room > 299 && room <= maxRoomNumber)
{
nightlyRate = 89.95;
didEnterCorrectRoomNumber = true;
//return didEnterCorrectRoomNumber;
}
else
{
//return didEnterCorrectRoomNumber;
}
}
public int getRoomNumber()
{
return roomNumber;
}
public double getNightlyRate()
{
return nightlyRate;
}
public boolean getDidEnterCorrectRoomNumber()
{
return didEnterCorrectRoomNumber;
}
public void displayRoom()
{
System.out.println("Room Number: " + roomNumber);
System.out.format("Cost per Night: $%.2f%n", nightlyRate);
}
}
と私のサブクラス:
public class Suite extends HotelRoom
{
private final double suiteSurchargeRate = 40.00;
private double nightlyRateWithSuite;
public Suite (int room)
{
super(room);
//boolean didEnterCorrectRoomNumber = super.getDidEnterCorrectRoomNumber();
nightlyRateWithSuite = super.getNightlyRate() + suiteSurchargeRate;
//return didEnterCorrectRoomNumber;
}
public void displayRoom()
{
super.displayRoom();
System.out.format("Suite Surcharge: $%.2f%n", suiteSurchargeRate);
System.out.format("Total Cost per Night: $%.2f%n", nightlyRateWithSuite);
}
}
正確なコンパイラエラー:
MacBook-Air:HotelRoom Nick$ javac Suite.java Suite.java:12: cannot find symbol symbol : constructor HotelRoom(int) location: class HotelRoom super(room); ^ 1 error
私が保存され、再コンパイルの両方に数回、私はちょうど同じを取得しています結果。 HotelRoomはうまくコンパイルされますが、Suiteはコンパイルしません。それらはディレクトリ内の唯一の2つのJavaファイルであるため、間違ったクラスを呼び出す際に問題はありません。 :)
はあなたが取得しているエラーメッセージのテキストを投稿できますか? –
投稿したコードはうまくコンパイルされます。私はあなたが 'スーパー(部屋) 'を持っていなかったときにあなたはそのエラーがあったと思う。 –
コードは私にとってはうまく見えます。 Suiteをコンパイルする前に、HotelRoomを再コンパイルするのを忘れていないのですか?他にもHotelRoomクラスがありますか?コンパイラからの正確なエラーメッセージは何ですか? –