【发布时间】:2017-07-21 14:25:59
【问题描述】:
我是java初学者,试图创建一个抽象类Shape的抽象方法abstract int area(),Shape类扩展了其他三个类这些类的覆盖面积方法正在计算面积并返回int值,我想存储在Shape类数组中。
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();
}
}
错误:不兼容的类型:int 无法转换为 Shape
【问题讨论】:
标签: java