私は、Shapeというスーパークラスを持っています。私のシェイプクラスは、2DShapeというサブクラスを持ち、2DShapeは、circle、squareというサブクラスを持っています。サブクラスからメソッドを呼び出す
私は私の問題は、私は唯一の私のShapeクラスからメソッドを呼び出すことができるということです
Shape [] shapes = new Shape[4];
shapes[0] = new Circle(22, 88 , 4, 0);
shapes[1] = new Square(71, 96 , 0, 10);
形状のためにこれらのオブジェクト参照を保持するために、Shape型の配列を作成しました。スクエアクラスとサークルクラスからメソッドを呼び出すにはどうすればよいですか?どちらも呼び出されるcalcAreaというメソッドが呼び出されます。私はあなたがShape
のメソッドとしてcalcArea()
を定義する必要があります。この
for (int i = 0; i < shapes.length; i++) {
System.out.println(shapes[i]);
shapes[i].calcArea();
}
ダウンキャスティングを使用できます。 –
ありがとう、私はキャストする必要があるように見える – Carl