私は抽象メソッド抽象int型エリア()抽象クラス形状の、他の三つのクラスとこれらのクラスのオーバーライドされた面積法に拡張Shape
クラスを作成しようとすると、Javaで初心者ですが面積を計算し、int
を返しています値と私はShape
クラスの配列に格納したい。intをカスタムクラスの型にキャストできますか?もしそうなら、どうですか?
import java.util.Scanner;
abstract class Shape{
abstract int area();
}
class Ractangle extends Shape {
private int length,width;
public Rectangle(){
System.out.println("Enter length rectangle ");
this.length = Test.scan.nextInt();
System.out.println("Enter width rectangle ");
this.width = Test.scan.nextInt();
}
public int area(){
return length*width;
}
}
class Square extends Shape{
private int side;
public Square(){
System.out.println("Enter side square ");
this.side = Test.scan.nextInt();
}
public int area(){
return side*side;
}
}
class Parlellogram extends Shape{
private int base,height;
public Parallelogram(){
System.out.println("Enter base parallelogram");
this.base = Test.scan.nextInt();
System.out.println("Enter height parallelogram ");
this.height = Test.scan.nextInt();
}
public int area(){
return base*height;
}
}
class Test{
public static Scanner scan;
public static void main(String[] args){
scan = new Scanner(System.in);
Rectangle rect = new Rectangle();
Square sq = new Square();
Parallelogram prlg = new Parallelogram();
Shape[] shapeArray = {rect.area(), sq.area(), prlg.area()}; //error here
//shapeArray[0] = rect.area();
//shapeArray[1] = sq.area();
//shapeArray[2] = prlg.area();
}
}
エラー:互換性のない型:理由はarea()
方法である
int[] shapeArray = {ract.area(),sq.area(),prlg.area()};
配列データ型を変更intは、それ自体が問題int cannot be converted to Shape
について語る