import java.util.ArrayList;
import java.util.Iterator;

abstract class Forme {
  double largeur, hauteur;
  abstract double getAire(); // a définir
  String toStringAire() { 
     return "aire = " + getAire();
  } // commune
}

class Rectangle extends Forme {
  Rectangle(double largeur, double hauteur) {
    this.largeur = largeur; this.hauteur = hauteur;
  }
  double getAire() { return largeur*hauteur; }
}

class Ellipse extends Forme {
  Ellipse(double largeur, double hauteur) {
    this.largeur = largeur; this.hauteur = hauteur;
  }
  double getAire() { return Math.PI * largeur * hauteur / 4; }
}

public class ArrayTest {
  public static void main(String[] args) {
    Forme grandRectangle = new Rectangle(6, 10);
    Forme petitRectangle = new Rectangle(5, 10);
    Forme ellipse = new Ellipse(3, 5);
    ArrayList liste = new ArrayList();
    liste.add(grandRectangle);
    liste.add(petitRectangle);
    liste.add(1, ellipse);  // on a r1, e, r2
    for (Iterator it = liste.iterator(); it.hasNext();)
      System.out.println(((Forme) it.next()).toStringAire());
  }
}

  

