import java.util.*; public class Main { public static void main(String args[]){ //System.out.println("Perimeter is: " + q1.getPerimeter()); //System.out.println(q1.getAngleSum()); //q1.printDimensions(); //System.out.println(); //Rectangle r1 = new Rectangle(3,5); //r1.printDimensions(); //System.out.println("Diagonal is: " + r1.getDiagonal()); //System.out.println("Perimeter is: " + r1.getPerimeter()); //System.out.println(); ArrayList<Quadrilateral> quad = new ArrayList<Quadrilateral>(); Quadrilateral q1 = new Quadrilateral(2,3,4,5); Quadrilateral q2 = new Rectangle(3, 5); //Okay since quadrilateral is more general than rectangle //More specific to generic = compiler error (EX: rectangle to quadrilateral) System.out.println("The diagonal is: " + ((Rectangle)q2).getDiagonal()); Quadrilateral q3 = new Square(4); Rectangle r1 = new Rectangle(4,7); Square s1 = new Square(6); quad.add(q1); quad.add(q1); quad.add(q3); //System.out.println("The diagonal of r2 is: " + ((Rectangle)r2).getDiagonal()); //needs to bind (similar to typecast) it to remind comp r2 is a rectangle //quad.add(r2); for(Quadrilateral q : quad){ q.printDimensions(); } //Square s1 = new Square(5); //System.out.println(s1.getDiagonal()); } }