不,不可能为Java接口中的成员定义私有修饰符和受保护的修饰符。
众所周知,接口中定义的成员是隐式公共的,换句话说,我们可以说接口中定义的成员默认是公共的。
可以在接口中为成员定义公共修饰符。
对于public修饰符,由于接口的所有成员默认情况下都是public,因此在接口中的成员之前不必强制给“ public”加上前缀。
我们将针对接口中成员的修饰符讨论三种情况。
如果我们为接口中的成员定义私有修饰符,将会发生什么?
如果我们为接口中的成员定义受保护的修饰符,将会发生什么?
如果我们在接口中为成员定义公共修饰符,将会发生什么?
如果我们在接口中没有为成员定义修饰符,将会发生什么?
在示例的帮助下,我们将逐一看到上述每种情况...
//Java程序演示的例子 //为接口定义私有成员 interface PrivateMemberInterface { private String str = "There will be an error."; void display(); } public class Main implements PrivateMemberInterface { //覆盖display()PrivateMemberInterface- public void display() { System.out.print("Private modifiers not allowed"); System.out.print("for Data Members"); } public static void main(String[] args) { //类实例化 Main m = new Main(); //调用display()主类 m.display(); //访问接口的私有成员 System.out.println(str); } }
输出结果
/Main.java:5: error: modifier private not allowed here private String str = "There will be an error."; ^ 1 error
结论:我们不能为接口中的成员定义私有修饰符。
//Java程序演示的例子 //为接口定义受保护的成员 interface ProtectedMemberInterface { protected String str = "There will be an error."; void display(); } public class Main implements ProtectedMemberInterface { //覆盖display()ProtectedMemberInterface- public void display() { System.out.print("Protected modifiers not allowed"); System.out.print("for Data Members"); } public static void main(String[] args) { //类实例化 Main m = new Main(); //调用display()主类 m.display(); //访问接口的受保护成员 System.out.println(str); } }
输出结果
/Main.java:5: error: modifier protected not allowed here protected String str = "There will be an error."; ^ 1 error
结论:我们也不能为接口中的成员定义受保护的修饰符。
//Java程序演示的例子 //为接口定义公共成员 interface PublicMemberInterface { public String str = "No error here..."; void display(); } public class Main implements PublicMemberInterface { //覆盖display()PublicMemberInterface- public void display() { System.out.print("Public modifiers are allowed" + " "); System.out.print("for Data Members"); } public static void main(String[] args) { //类实例化 Main m = new Main(); //调用display()主类 m.display(); System.out.println(); //访问接口的公共成员 System.out.println(str); } }
输出结果
Public modifiers are allowed for Data Members No error here...
结论:我们可以为接口中的成员定义公共修饰符,并且在Java中有效。
//Java程序演示的例子 //的成员定义任何修饰符 //接口 interface NoModifierMemberInterface { String str = "No error here..."; void display(); } public class Main implements NoModifierMemberInterface { //覆盖display()NoModifierMemberInterface- public void display() { System.out.print("No modifiers are allowed" + " "); System.out.print("for Data Members"); } public static void main(String[] args) { //类实例化 Main m = new Main(); //调用display()主类 m.display(); System.out.println(); //不访问接口的修饰符成员 System.out.println(str); } }
输出结果
No modifiers are allowed for Data Members No error here...
结论:我们不能为接口中的成员定义修饰符,它在java中是有效的,因为成员的默认修饰符是public。