Java >> Tutoriel Java >  >> Tag >> protected

Pouvons-nous définir des modificateurs privés et protégés pour les membres dans les interfaces en Java ?

Non, il n'est pas possible de définir des modificateurs privés et protégés pour les membres dans les interfaces en Java.

  • Comme nous le savons, les membres définis dans les interfaces sont implicitement publics ou en d'autres termes, nous pouvons dire que le membre défini dans une interface est public par défaut.
  • Il est possible de définir des modificateurs publics pour le membre dans les interfaces.
  • Dans le cas des modificateurs publics, il n'est pas obligatoire de préfixer "public" avec les membres dans les interfaces car tous les membres de l'interface sont par défaut publics.
  • Nous allons discuter de trois cas en termes de modificateurs pour les membres dans les interfaces.
    1. Que se passera-t-il si nous définissons des modificateurs privés pour les membres d'une interface ?
    2. Que se passera-t-il si nous définissons des modificateurs protégés pour les membres dans l'interface ?
    3. Que se passera-t-il si nous définissons des modificateurs publics pour les membres dans l'interface ?
    4. Que se passera-t-il si nous ne définissons aucun modificateur pour les membres dans l'interface ?

Nous allons voir chacun des cas ci-dessus un par un à l'aide d'un exemple...

1) Définir des modificateurs privés pour le membre dans l'interface en Java

// Java program to demonstrate the example of
// defining private members for the interface 

interface PrivateMemberInterface {
    private String str = "There will be an error.";
    void display();
}

public class Main implements PrivateMemberInterface {
    // override display() of PrivateMemberInterface
    public void display() {
        System.out.print("Private modifiers not allowed");
        System.out.print("for Data Members");
    }

    public static void main(String[] args) {
        // class instantiation
        Main m = new Main();

        // calling display() of Main class
        m.display();

        // Accessing private member of an interface
        System.out.println(str);
    }
}

Sortie

/Main.java:5: error: modifier private not allowed here
    private String str = "There will be an error.";
                   ^
1 error

Conclusion : Nous ne pouvons pas définir de modificateurs privés pour les membres dans l'interface.

2) Définir des modificateurs protégés pour le membre dans l'interface en Java

// Java program to demonstrate the example of
// defining protected members for the interface 

interface ProtectedMemberInterface {
    protected String str = "There will be an error.";
    void display();

}

public class Main implements ProtectedMemberInterface {
    // override display() of ProtectedMemberInterface
    public void display() {
        System.out.print("Protected modifiers not allowed");
        System.out.print("for Data Members");
    }

    public static void main(String[] args) {
        // class instantiation
        Main m = new Main();
        // calling display() of Main class
        m.display();
        // Accessing protected member of an interface
        System.out.println(str);
    }
}

Sortie

/Main.java:5: error: modifier protected not allowed here
    protected String str = "There will be an error.";
                     ^
1 error

Conclusion : Nous ne pouvons pas définir de modificateurs protégés également pour les membres de l'interface.

3) Définir des modificateurs publics pour le membre dans l'interface en Java

// Java program to demonstrate the example of
// defining public members for the interface 

interface PublicMemberInterface {
    public String str = "No error here...";
    void display();
}

public class Main implements PublicMemberInterface {
    // override display() of PublicMemberInterface
    public void display() {
        System.out.print("Public modifiers are allowed" + " ");
        System.out.print("for Data Members");
    }

    public static void main(String[] args) {
        // class instantiation
        Main m = new Main();
        // calling display() of Main class
        m.display();
        System.out.println();
        // Accessing public member of an interface
        System.out.println(str);
    }
}

Sortie

Public modifiers are allowed for Data Members
No error here...

Conclusion : Nous pouvons définir des modificateurs publics pour les membres dans une interface et c'est valide en java.

4) Ne pas définir de modificateurs pour le membre dans l'interface en Java

// Java program to demonstrate the example of
// not defining any modifier for the members in 
// interface 

interface NoModifierMemberInterface {
    String str = "No error here...";
    void display();
}

public class Main implements NoModifierMemberInterface {
    // override display() of NoModifierMemberInterface
    public void display() {
        System.out.print("No modifiers are allowed" + " ");
        System.out.print("for Data Members");
    }

    public static void main(String[] args) {
        // class instantiation
        Main m = new Main();
        // calling display() of Main class
        m.display();
        System.out.println();
        // Accessing no modifiers member of an interface
        System.out.println(str);
    }
}

Sortie

No modifiers are allowed for Data Members
No error here...

Conclusion : Nous ne pouvons définir aucun modificateur pour les membres dans l'interface et c'est valide en Java car par défaut le modificateur pour le membre est public.


No
Balise Java