我们可以在java8中将接口成员声明为私有成员还是受保护的成员?

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

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

接口的私有成员

如果接口的成员是私有的,则不能提供方法的实现,或者不能在实现类中访问它的字段。

因此,接口的成员不能是私有的。如果尝试将接口的成员声明为私有,则会生成一个编译时错误,提示“此处不允许使用修饰符私有”。

示例

在下面的Java示例中,我们试图将接口的字段和方法声明为私有。

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

编译时错误

编译时,上面的程序生成以下错误。

输出结果

MyInterface.java:2: error: modifier private not allowed here
   private static final int num = 10;
                        ^
MyInterface.java:3: error: modifier private not allowed here
   private abstract void demo();
                             ^
2 errors

接口的受保护成员

通常,可以在相同的类中或在继承该类的类中访问受保护的成员。但是,我们不继承将要实现的接口。

因此,不能保护接口的成员。如果尝试声明接口的成员受保护,则会生成一个编译时错误,提示“此处不允许使用修饰符保护”。

示例

在下面的Java示例中,我们尝试声明受保护接口的字段和方法。

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

编译时错误

编译时,上面的程序生成以下错误。

输出结果

MyInterface.java:2: error: modifier private not allowed here
   private static final int num = 10;
^
MyInterface.java:3: error: modifier private not allowed here
   private abstract void demo();
^
2 errors
猜你喜欢