Une classe peut-elle avoir une interface et une interface peut-elle avoir une classe en Java ?
Dans un premier temps, nous verrons une classe peut-elle avoir une interface en Java ?
- Oui, il est possible de définir une interface à l'intérieur de la classe.
- L'interface est définie dans une autre interface est connue sous le nom d'interface imbriquée, mais lorsque nous définissons une interface à l'intérieur de la classe, elle est également appelée interface imbriquée.
- L'objectif de définir une interface à l'intérieur d'une classe est utilisé pour regrouper les interfaces associées afin qu'elles puissent être gérées facilement.
- Une fois qu'une interface est définie dans une classe, nous ne pouvons pas accéder directement à une interface (c'est-à-dire qu'une interface doit être référencée par une classe).
- Il existe une restriction sur les modificateurs d'accès lorsque nous définissons une interface dans une classe.
- Il n'est pas obligatoire de préfixer le mot-clé "static" avec les interfaces définies dans une classe car l'interface est par défaut statique.
Syntaxe :
class MyClass{ // MyClass Code interface MyInterface(){ //MyInterface Code } }
Exemple :
// Java program to demonstrate the example of // defining an interface in a class class MyClass { // Interface definition in a class interface MyInterface { void display(); } } public class Main implements MyClass.MyInterface { String str = "we are learning Java Programming"; // override abstract method of interface public void display() { System.out.print("Hi,"); } public static void main(String[] args) { Main m = new Main(); MyClass.MyInterface mc = new Main(); // Calling Main class method of interface mc.display(); System.out.println(m.str); } }
Sortie
Hi, we are learning Java Programming
Dans un deuxième temps, nous verrons une interface peut-elle avoir une classe en Java ?
- Oui, il est possible de définir une classe dans l'interface.
- L'objectif de définir une classe à l'intérieur d'une interface est utilisé pour regrouper les interfaces associées afin qu'elles puissent être gérées facilement.
- Une fois qu'une classe est définie dans une interface, nous ne pouvons pas accéder directement à une classe (c'est-à-dire qu'une classe doit être référencée par une interface).
- Il n'y a aucune restriction sur les modificateurs d'accès lorsque nous définissons une classe dans une interface.
- Il n'est pas obligatoire de préfixer le mot-clé "static" avec la classe définie dans une interface car la classe est publique par défaut.
Syntaxe :
interface MyInterface{ // MyInterface Code class MyClass(){ // MyClass Code } }
Exemple :
// Java program to demonstrate the example of // defining a class in an interface interface MyInterface { // MyClass definition class MyClass { String str = "Java support OOPS Concept"; void display() { System.out.print("Hi,"); } } } public class Main extends MyInterface.MyClass { public static void main(String[] args) { // Main class is instantiated Main m = new Main(); // Calling MyClass method m.display(); System.out.println(m.str); } }
Sortie
Hi, Java support OOPS Concept