Explain the following Java Polymorphism code in details. class Shape { public double getArea() { return 0.0; } } class Circle extends Shape { private int x,y; private double radius; public Circle() { x = y = 0; radius = 0.0; } public Circle(int x, int y, double radius) { this.x=x; this.y=y; this.radius = radius; } public void drawShape() { System.out.println("Circle.drawShape()"); } public double getArea() { double area = Math.PI* radius * radius; System.out.println("Circle area="+area); return area; } } class Rectangle extends Shape { private int x,y,h,w; public Rectangle() { x = y = h = w = 0; } public Rectangle(int x, int y, int h, int w) { this.x=x; this.y=y; this.h=h; this.w=w; } public void drawShape() { System.out.println("Rectangle.drawShape()"); } public double getArea() { double area = w * h; System.out.println("Rectangle area="+area); return area; } } public class ShapeTest { public static void main(String[] args) { Shape s = new Shape(); Circle c = new Circle(0,0,10.0); Rectangle r = new Rectangle(0,0,5,4); System.out.println("Return value="+ s.getArea()); s = c; System.out.println("Area= "+ s.getArea()); //s.drawShape(); s = r; System.out.println("Area= "+ s.getArea()); //Rectangle r2 = s; //Rectangle r3 = (Rectangle) new Shape(); Rectangle r4 = (Rectangle) s; r4.getArea(); } }
Explain the following Java Polymorphism code in details.
class Shape
{
public double getArea()
{
return 0.0;
}
}
class Circle extends Shape
{
private int x,y;
private double radius;
public Circle()
{
x = y = 0;
radius = 0.0;
}
public Circle(int x, int y, double radius)
{
this.x=x;
this.y=y;
this.radius = radius;
}
public void drawShape()
{
System.out.println("Circle.drawShape()");
}
public double getArea()
{
double area = Math.PI* radius * radius;
System.out.println("Circle area="+area);
return area;
}
}
class Rectangle extends Shape
{
private int x,y,h,w;
public Rectangle()
{
x = y = h = w = 0;
}
public Rectangle(int x, int y, int h, int w)
{
this.x=x;
this.y=y;
this.h=h;
this.w=w;
}
public void drawShape()
{
System.out.println("Rectangle.drawShape()");
}
public double getArea()
{
double area = w * h;
System.out.println("Rectangle area="+area);
return area;
}
}
public class ShapeTest
{
public static void main(String[] args) {
Shape s = new Shape();
Circle c = new Circle(0,0,10.0);
Rectangle r = new Rectangle(0,0,5,4);
System.out.println("Return value="+ s.getArea());
s = c;
System.out.println("Area= "+ s.getArea());
//s.drawShape();
s = r;
System.out.println("Area= "+ s.getArea());
//Rectangle r2 = s;
//Rectangle r3 = (Rectangle) new Shape();
Rectangle r4 = (Rectangle) s;
r4.getArea();
}
}
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 2 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)