接口
public interface Shape {
// 求⾯积⽅法
double getArea();
// 求周长⽅法
double getPerimeter();
}
Rect(矩形)
public class Rect implements Shape { private double width;// 宽
private double 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;
}
// ⼀个参数构造,给⼦类正⽅形⽤
public Rect(double width){
this.width = width;
}
//两个参数的构造,⾃⼰⽤
public Rect(double width,double height){ this.height = height;
this.width = width;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2*(width + height);
}
}
Circle(圆形)
public class Circle implements Shape{
private final double PI =3.14;//圆周率
private double r;//半径
public double getR(){
return r;
}
public void setR(double r){
this.r = r;
}
public Circle(double r){
this.r = r;
}
@Override
public double getArea(){
// TODO Auto-generated method stub
return PI * r * r;
}
@Override
public double getPerimeter(){
// TODO Auto-generated method stub
return PI * r *2;
}
}
Square(正方形)
public class Square extends Rect{
public Square(double width){
super(width);
}
@Override
public double getArea(){
// TODO Auto-generated method stub
return getWidth()*getWidth();
}
@Override
public double getPerimeter(){
// TODO Auto-generated method stub
return 4*getWidth();
}
}
Text(测试类)
public class Test {
public static void main(String[] args){
Shape[] shape =new Shape[3];
shape[0]=new Circle(3);
System.out.println("========圆形周长和⾯积========");
System.out.println(String.format("%.2f", shape[0].getArea())); System.out.println(shape[0].getPerimeter());
shape[1]=new Rect(5,8);
System.out.println("========矩形周长和⾯积========");
System.out.println(shape[1].getArea());
System.out.println(shape[1].getPerimeter());
shape[2]=new Square(5);
System.out.println("========正⽅形周长和⾯积========"); System.out.println(shape[2].getArea());
System.out.println(shape[2].getPerimeter());
}
}