在 Java 8 中,可以将接口成员声明为私有或受保护的吗?
Java 中的接口类似于类,但它只包含抽象方法和字段,这些字段是最终的和静态的。
由于所有方法都是抽象的,因此您无法实例化它。要使用它,您需要使用类实现此接口,并在其中为所有抽象方法提供主体。
接口的私有成员
如果接口的成员是私有的,则您无法为方法提供实现,也无法在实现类中访问它的字段。
因此,接口的成员不能是私有的。如果您尝试将接口的成员声明为私有,则会生成一个编译时错误,提示“此处不允许使用修饰符 private”。
示例
在以下 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
接口的受保护成员
通常,受保护的成员可以在同一个类或继承它的类中访问。但是,我们不会继承接口,而是会实现它。
因此,接口的成员不能是受保护的。如果您尝试将接口的成员声明为受保护的,则会生成一个编译时错误,提示“此处不允许使用修饰符 protected”。
示例
在以下 Java 示例中,我们尝试将接口的字段和方法声明为受保护的。
public interface MyInterface{ protected static final int num = 10; protected abstract void demo(); }
编译时错误
编译时,上述程序会生成以下错误。
输出
MyInterface.java:2: error: modifier protected not allowed here protected static final int num = 10; ^ MyInterface.java:3: error: modifier protected not allowed here protected abstract void demo(); ^ 2 errors
广告