In: Computer Science
Java Program
Make an interface called interface1 that has tow data fields- default_length=1 and Pi=3.14
Make a second interface called interface2 that has one method: double getPerimeter(),
Make an abstract class GeometricObject that implements the 2 interfaces. And make one method getArea as an abstract method.
Make a subclass of GeometricObject called Square. The square class will inherit the superclass methods and implements the required abstract methods.
Make a subclass of GeometricObject called Triangle. (This is an equilateral triangle.) Triangle class will inherit the superclass methods and implements the required abstract methods.
In another class called test,using polymorphism call, declare 6 objects. The objects should be enclosed in an ArrayList of GeometricObject.
GeometricObject obj1=new Square(2);
Geometric Object obj2= new Triangle(4);
ArrayList<GeometricObject> arr=new ArrayList();
Write a for loop to extract the objects and print out their data.
import java.util.*;
interface interface1
{
public double default_length=1;
public double Pi=3.14;
}
interface interface2
{
public double getPerimeter();
}
abstract class GeometricObject implements interface1,interface2//
abstract base class
{
//abstract methods
abstract public double getArea();
}
class Triangle extends GeometricObject
{
private double side;
public Triangle()
{
side = default_length;
}
public Triangle(double side)
{
this.side = side;
}
//A method named getArea() that returns the area of this
triangle.
public double getArea()
{
double s = 3*side/2;
double area = Math.sqrt(s*(s-side)*(s-side)*(s-side));
return area;
}
//A method named getPerimeter() that returns the perimeter of this
triangle.
public double getPerimeter()
{
return 3*side;
}
//A method named toString() that returns a string description for
the triangle.
public String toString()
{
return "Equilateral Triangle side : "+side +" Area : "+getArea()+"
Perimeter : "+getPerimeter();
}
}
class Square extends GeometricObject
{
private double side;
public Square()
{
side = default_length;
}
public Square(double side)
{
this.side = side;
}
public String toString()
{
return "Square side : "+side+" Area : "+getArea()+" Perimeter :
"+getPerimeter();
}
public double getArea()
{
return side*side;
}
//A method named getPerimeter() that returns the perimeter of this
triangle.
public double getPerimeter()
{
return 4*side;
}
}
class Test
{
public static void main (String[] args)
{
GeometricObject obj1=new Square(2);
GeometricObject obj2= new Triangle(4);
GeometricObject obj3= new Triangle(6);
GeometricObject obj4= new Triangle();
GeometricObject obj5=new Square(5);
GeometricObject obj6=new Square();
ArrayList<GeometricObject> arr=new ArrayList();
arr.add(obj1);
arr.add(obj2);
arr.add(obj3);
arr.add(obj4);
arr.add(obj5);
arr.add(obj6);
for(int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
}
}
Output:
Square side : 2.0 Area : 4.0 Perimeter : 8.0 Equilateral Triangle side : 4.0 Area : 6.928203230275509 Perimeter : 12.0 Equilateral Triangle side : 6.0 Area : 15.588457268119896 Perimeter : 18.0 Equilateral Triangle side : 1.0 Area : 0.4330127018922193 Perimeter : 3.0 Square side : 5.0 Area : 25.0 Perimeter : 20.0 Square side : 1.0 Area : 1.0 Perimeter : 4.0
Do ask if any doubt. Please up-vote.