abstract class Shape { abstract double calculateArea(); abstract double calculatePerimeter(); } class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override double calculateArea() { return Math.PI * radius * radius; } @Override double calculatePerimeter() { return 2 * Math.PI * radius; } } class Triangle extends Shape { private double side1, side2, side3; public Triangle(double side1, double side2, double side3) { this.side1 = side1; this.side2 = side2; this.side3 = side3; } @Override double calculateArea() { double s = (side1 + side2 + side3) / 2; // Semi-perimeter return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); } @Override double calculatePerimeter() { return side1 + side2 + side3; } } public class Main { public static void main(String[] args) { //double circleRadius = 4.0; Circle circle = new Circle(7); // double triangleSide1 = 3.0, triangleSide2 = 4.0, triangleSide3 = 5.0; Triangle triangle = new Triangle(3,4,5); // System.out.println("Radius of the Circle: " + circleRadius); System.out.println("Area of the Circle: " + circle.calculateArea()); System.out.println("Perimeter of the Circle: " + circle.calculatePerimeter()); //System.out.println("\nSides of the Triangle are: " + triangleSide1 + ", " + triangleSide2 + ", " + triangleSide3); System.out.println("Area of the Triangle: " + triangle.calculateArea()); System.out.println("Perimeter of the Triangle: " + triangle.calculatePerimeter()); } }