我们可以在Java接口中为成员定义私有private和protected受保护的修饰符吗?

不,不可能为Java接口中的成员定义私有修饰符和受保护的修饰符。

  • 众所周知,接口中定义的成员是隐式公共的,换句话说,我们可以说接口中定义的成员默认是公共的。

  • 可以在接口中为成员定义公共修饰符。

  • 对于public修饰符,由于接口的所有成员默认情况下都是public,因此在接口中的成员之前不必强制给“ public”加上前缀。

  • 我们将针对接口中成员的修饰符讨论三种情况。

    1. 如果我们为接口中的成员定义私有修饰符,将会发生什么?

    2. 如果我们为接口中的成员定义受保护的修饰符,将会发生什么?

    3. 如果我们在接口中为成员定义公共修饰符,将会发生什么?

    4. 如果我们在接口中没有为成员定义修饰符,将会发生什么?

在示例的帮助下,我们将逐一看到上述每种情况...

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 here

    private 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 here

    protected 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 Members

No 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 Members

No error here...

结论:我们不能为接口中的成员定义修饰符,它在java中是有效的,因为成员的默认修饰符是public。

以上是 我们可以在Java接口中为成员定义私有private和protected受保护的修饰符吗? 的全部内容, 来源链接: utcz.com/z/357409.html

回到顶部