- 按照下面要求完成类的设计
(1)设计一个平面图形抽象类和一个立体图形抽象类,提供该类对象公共的方法和属性。
(2)修改项目三中第2题中所设计的球类、圆柱类,圆锥类、矩形类、三角形类、圆类,分别继承平面图形抽象类和立体图形抽象类。
(3)运行项目三中第2题中的测试方法,进行测试。
package pro4; public class Graphic03 { public static void main(String[] args) { ball ball01=new ball("red",3); ball ball02=new ball("blue",4); square square01=new square("red",3,4); triangle triangle01=new triangle("blue",3,4,5); testGraphic t1=new testGraphic(ball01,ball02); testGraphic t2=new testGraphic(square01,triangle01); t1.compare(); t2.printSumA(); } } class testGraphic{ private ball b1; private ball b2; private square s1; private triangle t1; public testGraphic(ball b1,ball b2){ this.b1=b1; this.b2=b2; } public testGraphic(square s1,triangle t1){ this.s1=s1; this.t1=t1; } public void compare(){ if(b1.graphicV()>b2.graphicV()){ System.out.println(b1.getColor()+"色的球体积"+b1.graphicV()+"大于"+b2.getColor()+"色的球的体积"+b2.graphicV()); }else{ System.out.println(b2.getColor()+"色的球体积"+b2.graphicV()+"大于"+b1.getColor()+"色的球的体积"+b1.graphicV()); } } public void printSumA(){ System.out.println(s1.getColor()+"色矩形和"+t1.getColor()+"色三角形面积的和:"+(s1.graphicA()+t1.graphicA())); } } abstract class LiTi{ private String color; public LiTi(String color){ this.setColor(color); } public void setColor(String color){ this.color=color; } public String getColor(){ return this.color; } public abstract double graphicA(); public abstract double graphicV(); } class ball extends LiTi{ private double side01; public ball(String color,double side01) { super(color); this.setSide01(side01); } public void setSide01(double side01){ this.side01=side01; } public double getSide01(){ return this.side01; } public double graphicA(){ return 4*3.14*side01*side01; } public double graphicV(){ double v=3.14*3/4*side01*side01*side01; return v; } public void print(){ System.out.println("颜色是"+super.getColor()); } } class comuln extends LiTi{ private double side01; private double side02; public comuln(String color,double side01,double side02) { super(color); this.setSide01(side01); this.setSide02(side02); } public void setSide01(double side01){ this.side01=side01; } public void setSide02(double side02){ this.side02=side02; } public double getSide01(){ return this.side01; } public double getSide02(){ return this.side02; } public double graphicA(){ return 2*3.14*side01*side01+2*3.14*side01*side02; } public double graphicV(){ return 3.14*side01*side01*side02; } } class cone extends LiTi{ private double side01; private double side02; public cone(String color,double side01,double side02) { super(color); this.setSide01(side01); this.setSide02(side02); } public void setSide01(double side01){ this.side01=side01; } public void setSide02(double side02){ this.side02=side02; } public double getSide01(){ return this.side01; } public double getSide02(){ return this.side02; } public double graphicA(){ return 3.14*side01*side01+3.14*side01*java.lang.Math.sqrt(side02*side02+side01*side01); } public double graphicV(){ return 3.14/3*side01*side01*side02; } } abstract class PingMian{ private String color; public PingMian(String color){ this.setColor(color); } public void setColor(String color){ this.color=color; } public String getColor(){ return this.color; } public abstract double graphicA(); public abstract double graphicL(); } class square extends PingMian{ private double side01; private double side02; public square(String color,double side01,double side02) { super(color); this.setSide01(side01); this.setSide02(side02); } public void setSide01(double side01){ this.side01=side01; } public void setSide02(double side02){ this.side02=side02; } public double getSide01(){ return this.side01; } public double getSide02(){ return this.side02; } public double graphicA(){ return side01*side02; } public double graphicL(){ return 2*(side01+side02); } } class triangle extends PingMian{ private double side01; private double side02; private double side03; public triangle(String color,double side01,double side02,double side03) { super(color); this.setSide01(side01); this.setSide02(side02); this.setSide03(side03); } public void setSide01(double side01){ this.side01=side01; } public void setSide02(double side02){ this.side02=side02; } public void setSide03(double side03){ this.side03=side03; } public double getSide01(){ return this.side01; } public double getSide02(){ return this.side02; } public double getSide03(){ return this.side03; } public double graphicA(){ return side01*(java.lang.Math.sqrt(java.lang.Math.abs(side03*side03-side01*side01))/2); } public double graphicL(){ return side01+side02+side03; } } class circle extends PingMian{ private double side01; public circle(String color,double side01) { super(color); this.setSide01(side01); } public void setSide01(double side01){ this.side01=side01; } public double getSide01(){ return this.side01; } public double graphicA(){ return 3.14*side01*side01; } public double graphicL(){ return 2*3.14*side01; } }