OOPs

16. Write a Java program to create a class called "Shape" with abstract methods for calculating area and perimeter, and subclasses for "Rectangle", "Circle", and "Triangle".

            abstract class Shape{
                abstract double area();
                abstract double perimeter();
            }
            class Rectangle extends Shape{
                private double length, breadth;
                Rectangle(double l, double b){
                    length = l;
                    breadth = b;
                }
                double area(){
                    return (length * breadth);
                }
                double perimeter(){
                    return (2*(length + breadth));
                }
            }
            class Circle extends Shape{
                private double radius;
                Circle(double r){
                    radius = r;
                }
                double area(){
                    return (Math.PI*radius*radius);
                }
                double perimeter(){
                    return (2*Math.PI*radius);
                }
            }
            class Triangle extends Shape{
                private double side1, side2, side3;
                Triangle(double s1, double s2, double s3){
                    side1 = s1;
                    side2 = s2;
                    side3 = s3;
                }
                double area(){
                    double s = perimeter()/2;
                    return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
                }
                double perimeter(){
                    return (side1+side2+side3);
                }
            }
            
            class Main{
                public static void main(String[] args){
                    Shape obj;
                    obj = new Rectangle(10, 5);
                    System.out.println("Area of Rectangle : " + obj.area());
                    System.out.println("Perimeter of Rectangle : " + obj.perimeter());
                    obj = new Circle(5);
                    System.out.println("Area of Circle : " + obj.area());
                    System.out.println("Perimeter of Circle : " + obj.perimeter());
                    obj = new Triangle(5, 2, 6);
                    System.out.println("Area of Triangle : " + obj.area());
                    System.out.println("Perimeter of Triangle : " + obj.perimeter());
            
                }
            }
        

OUTPUT

            Area of Rectangle : 50.0
            Perimeter of Rectangle : 30.0
            Area of Circle : 78.53981633974483
            Perimeter of Circle : 31.41592653589793
            Area of Triangle : 4.683748498798798
            Perimeter of Triangle : 13.0