我们可以在Java接口中为成员定义私有private和protected受保护的修饰符吗?
不,不可能为Java接口中的成员定义私有修饰符和受保护的修饰符。
众所周知,接口中定义的成员是隐式公共的,换句话说,我们可以说接口中定义的成员默认是公共的。
可以在接口中为成员定义公共修饰符。
对于public修饰符,由于接口的所有成员默认情况下都是public,因此在接口中的成员之前不必强制给“ public”加上前缀。
我们将针对接口中成员的修饰符讨论三种情况。
如果我们为接口中的成员定义私有修饰符,将会发生什么?
如果我们为接口中的成员定义受保护的修饰符,将会发生什么?
如果我们在接口中为成员定义公共修饰符,将会发生什么?
如果我们在接口中没有为成员定义修饰符,将会发生什么?
在示例的帮助下,我们将逐一看到上述每种情况...
1)在Java接口中为成员定义私有修饰符
//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 hereprivate String str = "There will be an error.";
^
1 error
结论:我们不能为接口中的成员定义私有修饰符。
2)在Java接口中为成员定义受保护的修饰符
//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 hereprotected String str = "There will be an error.";
^
1 error
结论:我们也不能为接口中的成员定义受保护的修饰符。
3)在Java接口中为成员定义公共修饰符
//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 MembersNo error here...
结论:我们可以为接口中的成员定义公共修饰符,并且在Java中有效。
4)在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 MembersNo error here...
结论:我们不能为接口中的成员定义修饰符,它在java中是有效的,因为成员的默认修饰符是public。
以上是 我们可以在Java接口中为成员定义私有private和protected受保护的修饰符吗? 的全部内容, 来源链接: utcz.com/z/357409.html