/* OO-Version */ import at.ac.wu_wien.geometry.*; class Geometry { public static void main (String[] args) { Point p1 = new Point(5.0,20.0); Point p2 = new Point(2.0,90.0); Shape s1 = new Rectangle(p1,p2); System.out.println("s1: " + s1); System.out.println("Area="+s1.area()); System.out.println("Perimeter="+s1.perimeter()+"\n"); Shape s2 = new Circle(p1,p2); System.out.println("s2: "+s2); System.out.println("Area="+s2.area()); System.out.println("Perimeter="+s2.perimeter()+"\n"); if (s1.equals(s2)) { System.out.println ("s1 == s2"); } else { System.out.println ("s1 != s2"); } Shape s3 = (Shape) s2.clone(); System.out.println("s3: "+s3); // s3 still knows it's a deep copy of a Circle! if (s3.equals(s2)) { System.out.println ("s2 == s3"); } else { System.out.println ("s2 != s3"); } } }