我们可以在 Java 的接口中定义构造函数吗?

java 8object oriented programmingprogramming

不可以,Java 中的接口中不能有构造函数。

  • 从 Java7 开始,只能有公共、静态、最终变量和公共、抽象方法。

  • 从 Java8 开始,接口允许默认方法和静态方法。

  • 从 Java9 开始,接口允许私有和私有静态方法。

此外,您在接口中定义的所有方法(除上述方法外)都应由另一个类实现(重写)。但是,您不能在 Java 中覆盖构造函数。

如果您尝试在接口中定义构造函数,则会产生编译时错误。

示例

在下面的 Java 程序中,我们尝试在接口中定义构造函数。

public interface MyInterface{
   public abstract MyInterface();
   /*{
      System.out.println("This is the construction of the interface");
   }*/
   public static final int num = 10;
   public abstract void demo();
}

编译时错误

编译时,上述程序生成以下错误

输出

MyInterface.java:2: error: expected
   public abstract MyInterface();
^
1 error

简而言之,它不接受接口中没有返回类型的方法。如果您将返回类型添加到 MyInterface() 方法,则它将被视为正常方法,并且程序将编译而不会出现错误。

public interface MyInterface {
   public abstract void MyInterface();
   public static final int num = 10;
   public abstract void demo();
}

相关文章