What is an interface in Java and why would you, as a software developer, use interfaces code example

Example 1: Interface in java

// interface in java example
interface Vehicle
{
   public void accelerate();
}
class BMW implements Vehicle
{
   public void accelerate()
   {
      System.out.println("BMW accelerating...");
   }
}
public class InterfaceDemo
{
   public static void main(String[] args)
   {
      BMW obj = new BMW();
      obj.accelerate();
   }
}

Example 2: how to implement a interface in java

interface methods{
 public static hey(); 
}

class scratch implements methods{
  // Required to implement all methods declared in an interface 
  // Or else the class becomes abstract
  public static hey(){
   System.out.println("Hey"); 
  }
}