Public feed #923979

Unnamed

public java v1 · immutable
Raw Edit
·published 2008-03-01 00:08 UTC
rendered paste body
import java.util.ArrayList;import java.util.List;public class Main2 {		public static void main(String[] args) {		Square s1 = new Square(4);		Square s2 = new Square(9);		Rectangle r1 = new Rectangle(3, 4);		Rectangle r2 = new Rectangle(5, 6);				List<Shape> shapes = new ArrayList<Shape>();		shapes.add(s1);		shapes.add(s2);		shapes.add(r1);		shapes.add(r2);				List<Square> squareShapes = new ArrayList<Square>();		squareShapes.add(s1);		squareShapes.add(s2);				List<Rectangle> rectangleShapes = new ArrayList<Rectangle>();		rectangleShapes.add(r1);		rectangleShapes.add(r2);				Main2 m = new Main2();				double avgArea = m.averageArea(shapes);		System.out.println(avgArea);				double avgSquareArea = m.averageArea(squareShapes);		System.out.println(avgSquareArea);				double avgRectangleArea = m.averageArea(rectangleShapes);		System.out.println(avgRectangleArea);	}		private double averageArea(List<? extends Shape> shapes) {		double sum = 0;		for (Shape s : shapes) {			sum += s.area();		}		return sum / shapes.size();	}}abstract class Shape {		public abstract double area();}class Square extends Shape {		public double sideLength;		public Square(double sideLength) {		this.sideLength = sideLength;	}		public double area() {		return sideLength * sideLength;	}}class Rectangle extends Shape {		public double xLength, yLength;		public Rectangle(double xLength, double yLength) {		this.xLength = xLength;		this.yLength = yLength;	}		public double area() {		return xLength * yLength;	}}