Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में इंटरफेस मेथड कैसे कॉल करें?


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) रेफरेंस के माध्यम से मेथड्स कॉल करें। यह पॉलीमॉर्फिज्म और लूज कपलिंग को सक्षम करता है।

  1. जावा में invokeLater() मेथड को कैसे कॉल करें? जावा में invokeLater() मेथड को कैसे कॉल करें?

    invokeLater() मेथड SwingUtilities क्लास का एक स्टैटिक मेथड है और इसका उपयोग AWT इवेंट डिस्पैचर थ्रेड में असिंक्रोनसली कार्य करने के लिए किया जा सकता है। SwingUtilities.invokeLater() मेथड SwingUtilities.invokeAndWait() की तरह काम करता है सिवाय इसके कि यह अनुरोध को इवेंट क्यू पर रखता है और तुरंत वापस

  1. Java में FocusListener इंटरफेस का महत्व क्या है? Java में FocusListener इंटरफेस का महत्व क्या है?

    FocusListener फोकस इवेंट्स तब उत्पन्न होते हैं जब भी कोई कंपोनेंट कीबोर्ड फोकस प्राप्त करता है या खो देता है। फोकस इवेंट्स को दर्शाने वाले ऑब्जेक्ट्स FocusEvent क्लास से बनाए जाते हैं। FocusEvent क्लास के लिए संबंधित लिसनर इंटरफेस FocusListener इंटरफेस है। FocusEvent के लिए प्रत्येक लिसनर FocusList

  1. Java में पैकेज कैसे कंपाइल करें Java में पैकेज कैसे कंपाइल करें

    आइए एक उदाहरण देखें जो animals नामक एक पैकेज बनाता है। पैकेज के नाम लोअरकेस अक्षरों में उपयोग करना एक अच्छी प्रथा है ताकि क्लासेज और इंटरफेस के नामों के साथ किसी भी संघर्ष से बचा जा सके।निम्नलिखित पैकेज उदाहरण में animals नामक इंटरफेस है −/* File name : Animal.java */ package animals; interface An