You are given
interfaceGeometricObject
{
publicdoublegetPerimeter();
publicdoublegetArea();
}
interfaceResizable
{
publicvoidresize(int percent);
}
You have to write the implementation of
Both your classes must have an method called toString() which returns an string in the format shown below: -
Circle[radius=value]
Sample Input
1 // radius of circle
2 // radius of resizable circle
200 // percentage to resize the circle
Sample Output
Circle[radius=1.0] // Print the circle
6.28 // Perimeter of circle
3.14 // Area of circle
Circle[radius=2.0]
12.57 // Perimeter of circle
12.57 // Area of circle
25.13 // Perimeter of circle after resize
50.27 // Area of circle after resize
class Circle implements GeometricObject
{
protected double radius;
Circle(double radius){
this.radius = radius;
}
public double getPerimeter(){
double ans = 2*radius*Math.PI;
return ans;
}
public double getArea(){
double ans = radius*radius;
return ans*Math.PI;
}
@Override
public String toString(){
return "Circle[radius="+radius+"]";
}
}
class ResizableCircle extends Circle implements Resizable
{
ResizableCircle(double radius) {
super(radius);
}
public void resize(int percent){
double factor = percent/100.0;
radius = radius*factor;
}
@Override
public String toString(){
return "Circle[radius="+radius+"]";
}
}