Interfaces with Multiple Implementations in Java
Write a Java program to demonstrate the use of interfaces with multiple implementations
	- The Shape interface declares an abstract method draw(), which represents the action of drawing a shape.
- The Circle class implements the Shape interface and provides an implementation for the draw() method to draw a circle.
- The Square class also implements the Shape interface and provides an implementation for the draw() method to draw a square.
- In the Main class, objects of type Shape are created using polymorphism. Specifically, circle is assigned an instance of Circle, and square is assigned an instance of Square.
- By calling the draw() method on these Shape objects, the appropriate draw() method implementation for each shape (circle or square) is invoked based on the actual runtime type of the object.
- Therefore, when circle.draw() is called, it prints "Drawing a circle", and when square.draw() is called, it prints "Drawing a square".
Source Code
interface Shape
{
	void draw();
}
 
class Circle implements Shape
{
	@Override
	public void draw()
	{
		System.out.println("Drawing a circle");
	}
}
 
class Square implements Shape
{
	@Override
	public void draw()
	{
		System.out.println("Drawing a square");
	}
}
 
public class Main
{
	public static void main(String[] args)
	{
		Shape circle = new Circle();
		Shape square = new Square();
		circle.draw();
		square.draw();
	}
}
Output
Drawing a circle
Drawing a square