题目描述:
现有一块画布上(Canvas)它有如下功能:
- 定义addShape(Shape s)在画布上新增并绘制出其形状;
- 定义removeShape(Shape s)删除画布上已存在的形状
- 定义clone(Shape s)克隆一个已存在的形状增加到画布上
- 定义Shape Max()方法返回画布上面积最大的形状(如果有相等的几个返回第一个)
- 定义public double getArea()方法求画布上所有形状的面积和
- 定义printAllShapes()方法打印画布上所有形状信息
- 每一个形状(Shape)类,都有创建时的日期数据域(createdDate),创建的颜色(color),求面积和绘制图形的方法等等,每一个形状都是能被比较和复制(复制的时候,形状的时间应该是被复制的时间而不是被复制的形状的创建时间)。长方形和圆形是形状类的子类,它们会重写父类求面积和绘制图形的方法。为了程序实现方便,我们这里只定义两种图形。
代码: