public class Inizio 
{
    public static void main(String[] args) 
    {
	Poligono[] p = new Poligono[10];
	p[0] = new Rettangolo(7,3);
	p[1] = new Quadrato(7);
	p[2] = new Quadrato(5);
	p[3] = new Rettangolo(17,43);
	p[4] = new Triangolo(2,3,4);

	int i = 0;
	while (p[i]!=null) {
	    System.out.println("lati: " + p[i]);
	    System.out.println("area: " + p[i].getArea());
	    System.out.println("perimetro: " + p[i].getPerimetro());
	    System.out.println(""); // un rigo vuoto
	    i++;
	}

	// Questi sono esempi di assegnazioni per illustrare
	// la classe Object
	Object o1 = p;    // OK
	Object o2 = p[0]; // OK
	// Object o3 = 3;       // NO, questo sarebbe errore di compilazione
	// p[5] = new Object(); // NO, anche questo sarebbe errore di compilazione

    }
}