设有图形,矩形,立方体,圆,圆柱,根据自己的理解,给出它们之间的关系。
要求:
1、每种图形都有计算面积、周长、显示信息、获取图形名称的方法。
public abstract class Shape {
public double length;
public double width;
public double height;
public double radius;
public String Name;
public abstract double Square();
public abstract double Circumference();
public abstract void Show();
public abstract void ShapeName();
}
public class Rectangle extends Shape{
@Override
public double Square() {
double S = length*height*2.0 + width*height*2.0 + length*width*2.0;
return S;
}
@Override
public double Circumference() {
double C = length*4.0 + width*4.0 + height*4.0;
return C;
}
@Override
public void ShapeName() {
System.out.println("该图形为:" + Name);
}
@Override
public void Show() {
double S = Square();
double C = Circumference();
ShapeName();
System.out.println(Name+"面积为:"+S+"cm" +"\t"+Name+"周长为:"+C+"cm");
}
}
public class Cube extends Shape{
@Override
public double Square() {
double S = length*length*6.0;
return S;
}
@Override
public double Circumference() {
double C = length*12.0;
return C;
}
@Override
public void ShapeName() {
System.out.println("该图形为:"+Name);
}
@Override
public void Show() {
double S = Square();
double C = Circumference();
ShapeName();
System.out.println(Name+"面积为:"+S+"cm" +"\t"+Name+"周长为:"+C+"cm");
}
}
public class Circle extends Shape{
private double P = 3.14;
@Override
public double Square() {
double S = P*radius*radius;
return S;
}
@Override
public double Circumference() {
double C = 2*P*radius;
return C;
}
@Override
public void ShapeName() {
System.out.println("该图形为:"+Name);
}
@Override
public void Show() {
double S = Square();
double C = Circumference();
ShapeName();
System.out.println(Name+"面积为:"+S+"cm" +"\t"+Name+"周长为:"+C+"cm");
}
}
public class Test {
public static void main(String[] args) {
Shape shape = new Rectangle();
shape.length = 5.0;
shape.width = 4.0;
shape.height = 3.0;
shape.Name = "矩形";
shape.Show();
Shape shape1 = new Cube();
shape1.length = 3.0;
shape1.Name = "立方体";
shape1.Show();
Shape shape2 = new Circle();
shape2.radius = 2.0;
shape2.Name = "圆";
shape2.Show();
}
}