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

不,您不能在Java接口中包含构造函数。

  • 从Java7开始,您只能具有public,static,final变量以及public,abstract方法。

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

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

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

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

示例

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

public interface MyInterface{
   public abstract MyInterface();
   /*{
      System.out.println("This is the constructor 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();
}
猜你喜欢