public class Abstract { public static void main(String[] args) { Shape[] data = { new Rectangle(3,2), new Square(3)}; for (int i=0; i < data.length; i++) System.out.println(data[i].getArea()); } } abstract class Shape { public abstract double getArea(); } abstract class Quadrilateral extends Shape { protected double s1,s2,s3,s4; public Quadrilateral(double s1, double s2, double s3, double s4) { this.s1=s1; this.s2=s2; this.s3=s3; this.s4=s4; } } abstract class Triangle extends Shape { } class Rectangle extends Quadrilateral { public Rectangle(double s1, double s2) { super(s1,s2,s1,s2); } public double getArea() { return s1*s2; } } class Square extends Rectangle { public Square(double s) { super(s,s); } }