Create java program to do the following :
Problem Description: Using the GeometricObject class example in the book, create the following sub classes:
GeometricObject -> Circle -> Cone
GeometricObject -> Triangle -> TriBasePyramid
GeometricObject -> Rectangle -> RectBasePyramid
GeometricObject -> Hexagon -> HexagoneBasePyramid
The classes must be designed to have appropriate data fields and methods with every possible way to instantiate an object (different constructors). The test program should instantiate objects of the above types and calculates their volumes. Remember each sub class adds more detail to the super class. For example area must be used to calculate the volume of circle but should it be in Cone class? Or should it be used from other class?
Requirements:
1. Must use inheritance
2. Must draw UML diagram
Expert Answer
public class GeomentricObject {
float pi;
GeomentricObject(){
this.pi=3.1415f;
}
public float fvolume(){
System.out.println(“volume is:”+pi);
return pi;
}
}
class Circle extends GeomentricObject{
int radius;
Circle(int radius){
super();
this.radius=radius;
}
public float fvolume(){
float volume;
volume=pi*radius*radius;
System.out.println(“volume of Circle=”+volume);
return volume;
}
}
class Cone extends Circle{
int height;
Cone(int radius,int height){
super(radius);
this.height=height;
}
public float fvolume(){
float volume;
volume=(pi*radius*radius*height)/3;
System.out.println(“volume of Cone is=”+volume);
return volume;
}
}
class Triangle extends GeomentricObject{
int base;
int height;
Triangle(int base,int height){
super();
this.base=base;
this.height=height;
}
public float fvolume(){
float volume;
volume=base*height*1/2;
System.out.println(“volume of Triangle is=”+volume);
return volume;
}
}
class Tribasepyramid extends Triangle{
int base;
int height;
int width;
Tribasepyramid(int base,int height,int width){
super(base,height);
this.width=width;
}
public float fvolume(){
float volume;
volume=width*super.fvolume();
System.out.println(“volume of trianglebasepyramid=”+volume);
return volume;
}
}
class Hexogon extends GeomentricObject{
int side;
Hexogon(int side){
super();
this.side=side;
}
public float fvolume(){
double volume=3*Math.sqrt(3)/2*side*side;
float t=(float)volume;
System.out.println(“volume of Hexogon is=”+volume);
return t;
}
}
class Hexogonbasepyramid extends Hexogon{
int base;
int height;
double area;
double volume;
Hexogonbasepyramid(int side,int base,int height){
super(side);
this.base=base;
this.height=height;
}
public float fvolume(){
area=super.fvolume();
volume=area*base*height;
float tt=(float)volume;
System.out.println(“volume of Hexobasepyramid=”+volume);
return tt;
}
}
allmain.java
import java.util.*;
public class allmain {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
Cone c=new Cone(3,4);
c.fvolume();
Hexogonbasepyramid j=new Hexogonbasepyramid(2,3,4);
j.fvolume();
Tribasepyramid tb=new Tribasepyramid(2,5,22);
tb.fvolume();
GeomentricObject g=new Cone(4,5);
g.fvolume();
}
}
output:
volume of Cone is=37.697998
volume of Hexogon is=10.392304845413264
volume of Hexobasepyramid=124.7076530456543
volume of Triangle is=5.0
volume of trianglebasepyramid=110.0
volume of Cone is=83.77334