//Using run-time polymorphism.publicclassFindAreas
{
publicstaticvoidmain(String[] args)
{
Figure f = new Figure(10,10);
Rectangle r = new Rectangle(9,5);
Triangle t = new Triangle(10,8);
Figure figref;
figref = r;
System.out.println("Area is " + figref.area());
figref = t;
System.out.println("Ares is " + figref.area());
figref = f;
System.out.println("Area is " + figref.area());
}
}
classFigure
{
double dim1;
double dim2;
Figure(double a , double b)
{
dim1 = a;
dim2 = b;
}
doublearea()
{
System.out.println("Area for figure is undefined.");
return0;
}
}
classRectangleextendsFigure
{
Rectangle(double a , double b)
{
super(a , b);
}
//override area for rectangledoublearea()
{
System.out.println("Inside Area for Rectangle.");
return dim1 * dim2;
}
}
classTriangleextendsFigure
{
Triangle(double a , double b)
{
super(a , b);
}
//override area for right triangledoublearea()
{
System.out.println("Inside Area for Triangle.");
return dim1 * dim2 / 2;
}
}
/*
result:
Inside Area for Rectangle.
Area is 45.0
Inside Area for Triangle.
Ares is 40.0
Area for figure is undefined.
Area is 0.0
*/