"EmptySea"オブジェクトを配列に埋め込むために、別の "Ocean"クラスにオブジェクト( "Ship"クラスの "EmptySea"サブクラスで作成)をインスタンス化しようとしています。Java - 別のクラスのサブクラスコンストラクタへのアクセス
エラーは「EmptySeaはタイプに解決できません」です。
public class Ocean {
// Instance variables.
public Ship[][] ships = new Ship[10][10];
public int shotsFired;
public int hitCount;
// Constructor.
public Ocean() {
shotsFired = 0;
hitCount = 0;
for (int row = 0; row < ships.length; row++) {
for (int column = 0; column < ships[row].length; column++) {
ships[row][column] = new EmptySea();
public abstract class Ship {
// Instance variables.
private int bowRow;
private int bowColumn;
private int length;
private boolean horizontal;
private boolean[] hit = new boolean[4];
// No constructor needed for Ship class.
// Methods (too many to show).
public class EmptySea extends Ship {
// Constructor.
EmptySea() {
length = 1;
}
// Inherited methods to define.
int getLength() {
return length = 1;
}
String getShipType() {
return "Empty";
}
@Override
boolean shootAt(int row, int column) {
return false;
}
@Override
boolean isSunk() {
return false;
}
@Override
public String toString() {
return "-";
}
}
船アレイが正しくオーシャンクラスのインスタンス変数として宣言されています:
は、ここに私のオーシャンクラスコードです。基本的にはEmptySea()オブジェクト( "Ship"クラスのコードと "EmptySea"サブクラスが正しく動作する)を置くことはできません。
この場合、何とかスーパークラスを参照する必要がありますか?
もっと簡単な方法があれば、私はそうすることができません(この方法は割り当てで指定されています)。
コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/130016/discussion-on-question-by-broncosaurus-java-accessing-a-subclass-constructor-i)。 –