我们可以在Java中声明Interface final的方法吗?

Java中的接口是方法原型的规范。每当您需要指导程序员或订立合同以指定应如何使用类型的方法和字段时,都可以定义接口。

默认情况下,接口的所有方法都是公共的和抽象的。例如,在下面的Java程序中,我们声明了一个名为demo的方法。

public interface MyInterface{
   void demo();
}

如果您使用javac命令进行编译,如下所示-

c:\Examples>javac MyInterface.java

它被编译没有错误。但是,如果您使用javap命令在编译后验证了接口,如下所示-

c:\Examples>javap MyInterface
Compiled from "MyInterface.java"
public interface MyInterface {
   public abstract void demo();
}

您可以观察到编译器已代表您将public和abstract修饰符放置在方法之前。

除此之外,从Java9开始,您还可以使用接口方法使用默认,静态,私有,私有和静态。除此之外,您不能将其他修饰符与接口方法一起使用。

此外,如果声明一个final方法,则不能覆盖/实现它,并且必须重写或实现一个抽象方法。因此,您不能声明接口final的方法。

如果您仍然这样做,它会生成一个编译时错误,提示“此处不允许使用修饰符final”。

示例

在下面的Java程序中,我们试图声明接口final的方法。

public interface MyInterface{
   public abstract final void demo();
}

编译时错误

在编译时,上述程序会产生以下编译时错误-

MyInterface.java:2: error: modifier final not allowed here
   public abstract final void demo();
                              ^
1 error