貌似 正方形的 w 跟 h 是相等的吧?
壹下代碼僅供參考
public?class?TestCircle?{
public?static?void?main(String[]?args)?{
Shape?shape1?=?new?Circle(2);
Shape?shape2?=?new?Triangle(10,?20);
Shape?shape3?=?new?Square(20);
System.out.println("圓形(r=2)的邊數:"?+?shape1.getBorders());
System.out.println("圓形(r=2)的面積:"?+?shape1.getArea());
System.out.println("三角形(w=10,h=20)的邊數:"?+?shape2.getBorders());
System.out.println("三角形(w=10,h=20)的面積:"?+?shape2.getArea());
System.out.println("正方形(h=20)的邊數:"?+?shape3.getBorders());
System.out.println("正方形(h=20)的面積:"?+?shape3.getArea());
}
}
interface?Shape?{
int?getBorders();
double?getArea();
}
class?Circle?implements?Shape?{
int?r;
public?Circle(int?r)?{
super();
this.r?=?r;
}
@Override
public?int?getBorders()?{
return?1;
}
@Override
public?double?getArea()?{
return?Math.PI?*?Math.pow(r,?2);
}
}
class?Triangle?implements?Shape?{
int?w;
int?h;
public?Triangle(int?w,?int?h)?{
super();
this.w?=?w;
this.h?=?h;
}
@Override
public?int?getBorders()?{
return?3;
}
@Override
public?double?getArea()?{
return?w?*?h?/?2;
}
}
class?Square?implements?Shape?{
int?w;
public?Square(int?w)?{
super();
this.w?=?w;
}
@Override
public?int?getBorders()?{
return?4;
}
@Override
public?double?getArea()?{
return?Math.pow(w,?2);
}
}