如果在Java接口中定义具体方法会怎样?

Java中的接口类似于类,但是它仅包含final和static的抽象方法和字段。

由于所有方法都是抽象的,因此无法实例化。要使用它,您需要使用一个类来实现此接口,并为其提供所有抽象方法的主体。

接口中的具体方法

接口中的所有方法都必须是抽象的,如果尝试这样做,您将无法拥有具体的方法(具有主体的方法),这会给您带来编译时错误,提示“接口抽象方法不能具有主体”

示例

在下面的Java程序中,我们试图在接口中编写一个带有主体(具体)的方法。

public interface MyInterface{
   public static final int num =40;
   public void demo(){
      System.out.println("This is a concrete method in the interface");
   }
}

编译时错误

在编译时,该程序会生成以下编译时错误。

MyInterface.java:3: error: interface abstract methods cannot have body
public void demo(){
^
1 error