Java प्रोग्राम से इंटरफेस मेथड को कॉल करने के लिए, प्रोग्राम को इंटरफेस के कार्यान्वयन (implementation) प्रोग्राम को इंस्टेंशिएट करना होगा। फिर कार्यान्वयन ऑब्जेक्ट का उपयोग करके मेथड को कॉल किया जा सकता है।
उदाहरण
1. इंटरफेस परिभाषा
public interface InterfaceDemo {
// डिफ़ॉल्ट मेथड (Java 8+) - इसमें कार्यान्वयन है
default public void displayNameDefault(String name) {
System.out.println("Your name is: " + name);
}
// एब्स्ट्रैक्ट मेथड्स - कार्यान्वयन नहीं
public void displayName(String name);
public void displayNameAndDesignation(String name, String designation);
}
उपरोक्त इंटरफेस नाम और वैकल्पिक जॉब टाइटल प्रदर्शित करने के लिए तीन मेथड्स परिभाषित करता है। एक मेथड डिफ़ॉल्ट मेथड है जिसमें कार्यान्वयन तर्क है। शेष दो मेथड्स में कार्यान्वयन तर्क शामिल नहीं है।
2. इंटरफेस कार्यान्वयन
public class InterfaceDemoImpl implements InterfaceDemo {
@Override
public void displayName(String name) {
System.out.println(name);
}
@Override
public void displayNameAndDesignation(String name, String designation) {
System.out.println("Name: " + name + "\nDesignation: " + designation);
}
}
उपरोक्त Java प्रोग्राम implements कीवर्ड का उपयोग करके घोषित करता है कि यह इंटरफेस को कार्यान्वित करेगा। प्रोग्राम अब दो गैर-डिफ़ॉल्ट मेथड्स के लिए Java कोड प्रदान करने के लिए बाध्य है। तदनुसार, मेथड्स के कार्यान्वयन प्रदान किए गए हैं।
3. इंटरफेस मेथड कॉल करना
public class CallInterfaceMethod {
public static void main(String args[]) {
// इंटरफेस टाइप का रेफरेंस, इम्प्लीमेंटेशन ऑब्जेक्ट
InterfaceDemo demo = new InterfaceDemoImpl();
demo.displayName("Adithya");
demo.displayNameAndDesignation("Adithya", "Java Developer");
demo.displayNameDefault("Adithya");
}
}
उपरोक्त प्रोग्राम इंटरफेस कार्यान्वयन को इंस्टेंशिएट करता है। अगला, इंटरफेस में परिभाषित प्रत्येक मेथड को कॉल किया जाता है।
आउटपुट
Adithya Name: Adithya Designation: Java Developer Your name is: Adithya
महत्वपूर्ण अवधारणाएं
- पॉलीमॉर्फिज्म: रेफरेंस टाइप
InterfaceDemoहै, लेकिन ऑब्जेक्टInterfaceDemoImplका है। - डिफ़ॉल्ट मेथड्स (Java 8+): इंटरफेस में कार्यान्वयन हो सकता है। इम्प्लीमेंटेशन क्लास इन्हें ओवरराइड कर सकती है या नहीं।
- स्टेटिक मेथड्स (Java 8+): इंटरफेस में स्टेटिक मेथड्स भी हो सकते हैं जिन्हें
InterfaceName.staticMethod()से कॉल किया जाता है। - एकाधिक कार्यान्वयन: एक ही इंटरफेस के कई कार्यान्वयन हो सकते हैं (जैसे
ArrayListऔरLinkedListदोनोंListइम्प्लीमेंट करते हैं)।
डिफ़ॉल्ट मेथड ओवरराइड उदाहरण
public class CustomImpl implements InterfaceDemo {
@Override
public void displayNameDefault(String name) {
// डिफ़ॉल्ट व्यवहार बदलना
System.out.println("Custom: " + name.toUpperCase());
}
// अन्य मेथड्स...
}
निष्कर्ष: इंटरफेस मेथड को कॉल करने के लिए: (1) इंटरफेस को इम्प्लीमेंट करने वाली क्लास का ऑब्जेक्ट बनाएं, (2) इंटरफेस टाइप के रेफरेंस में असाइन करें, (3) रेफरेंस के माध्यम से मेथड्स कॉल करें। यह पॉलीमॉर्फिज्म और लूज कपलिंग को सक्षम करता है।