Circle.java
package com.atguigu.exer1; public class Circle extends GeometricObject { private double radius; public Circle(double radius,String color, double weight) { super(color, weight); this.radius = radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public double findArea(){ return 3.14 * radius * radius; } }
GeometricObject.java
package com.atguigu.exer1; public class GeometricObject {//几何图形 protected String color; protected double weight; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } public GeometricObject(String color, double weight) { super(); this.color = color; this.weight = weight; } public double findArea(){ return 0.0; } }
GeometricTest.java
package com.atguigu.exer1; /* * * 定义一个测试类GeometricTest, * 编写equalsArea方法测试两个对象的面积是否相等(注意方法的参数类型,利用动态绑定技术), * 编写displayGeometricObject方法显示对象的面积(注意方法的参数类型,利用动态绑定技术)。 */ public class GeometricTest { public static void main(String[] args) { GeometricTest test = new GeometricTest(); Circle c1 = new Circle(3.3, "white", 1.0); test.displayGeometricObject(c1); Circle c2 = new Circle(3.3, "white", 1.0); test.displayGeometricObject(c2); boolean isEquals = test.equalsArea(c1, c2); System.out.println("c1 和 c2的面积是否相等:" + isEquals); MyRectangle rect = new MyRectangle(2.1, 3.4, "red", 2.0); test.displayGeometricObject(rect); } public void displayGeometricObject(GeometricObject o){//GeometricObject o = new Circle(...) System.out.println("面积为:" + o.findArea()); } //测试两个对象的面积是否相等 public boolean equalsArea(GeometricObject o1,GeometricObject o2){ return o1.findArea() == o2.findArea(); } }
MyRectangle.java
package com.atguigu.exer1; public class MyRectangle extends GeometricObject { private double width; private double height; public MyRectangle(double width,double height,String color, double weight) { super(color, weight); this.width = width; this.height = height; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } @Override public double findArea() { return width * height; } }