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(); } }

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter11: Advanced Inheritance Concepts
Section: Chapter Questions
Problem 5PE
icon
Related questions
Question

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();
}
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Unreferenced Objects
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT