まずで、Javaでのオーバーロードとオーバーライド、私は何か他のことを考えていますが、ここで行くことがあり、おそらく間違ったタイトルを持ってごめんなさい。私はProcessingアプレットを使ってJavaで星とサークルを描く簡単なプログラムを持っています。私はShape型のArrayListを持っています。多型は、すべてのArrayListの
ArrayList<Shape> shapeList= new ArrayList<Shape>();
私はそのAスターや円かどうかを判断するためにオーバーロードを使用して、コンストラクタを通じて、様々な星と円を追加します。円については
shapeList.add(new Shape(x, y, size, colour, numPoints, pApp));
:STARに
shapeList.add(new Shape(x, y, size, colour, pApp));
それが完了すると、タスクは図形を描画し、レンダリングするためのArrayListの周りにループにあります。スタークラスとサークルクラスは、どちらもシェイプを描画する独自の描画メソッドを持っています。
for (Shape shape: shapeList)
{
shape.update();
shape.draw();
}
私がいる問題は、私がスターやサークル、クラスに「フォールバック」にそれをしたいときShapeクラス内の空のドローを()をオーバーライドし、その具体的なドローを実行するのに失敗しているということです()は、オブジェクトがArrayList内のその点にある星か円かによって異なります。
ありがとうございます!
しかし、あなたは、あなたがShape's ...あなたが適切なクラスからのコンストラクタを使用する必要が 'インスタンス化している' Star'または 'Circle'をインスタンス化していません。 – Zircon
Starには、Polygon/Polygon2Dを追加することをお勧めします。サークルについては、Ellipse2Dを追加することをお勧めします。 – ControlAltDel
@Zirconええ、それは1つの間違いでした、ありがとう! – badprogramming99