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

Java 8 में डिफ़ॉल्ट और स्टेटिक इंटरफेस मेथड के बीच अंतर

परिचय

Oracle के Javadocs के अनुसार -

डिफ़ॉल्ट मेथड्स आपको अपने लाइब्रेरी के इंटरफेस में नई कार्यक्षमता जोड़ने में सक्षम बनाते हैं और उन इंटरफेस के पुराने संस्करणों के लिए लिखे गए कोड के साथ बाइनरी कम्पैटिबिलिटी सुनिश्चित करते हैं।

एक स्टेटिक मेथड वह मेथड है जो उस क्लास से जुड़ा होता है जिसमें इसे परिभाषित किया गया है न कि किसी ऑब्जेक्ट से। क्लास का हर इंस्टेंस अपने स्टेटिक मेथड्स को साझा करता है।

इंटरफेस में स्टेटिक मेथड इंटरफेस क्लास का हिस्सा होते हैं, इन्हें इम्प्लीमेंट या ओवरराइड नहीं किया जा सकता जबकि क्लास डिफ़ॉल्ट मेथड को ओवरराइड कर सकती है।

क्र. सं.मुख्य बिंदुस्टेटिक इंटरफेस मेथडडिफ़ॉल्ट मेथड
1बुनियादीयह एक स्टेटिक मेथड है जो केवल इंटरफेस से संबंधित है। हम इस मेथड का कार्यान्वयन इंटरफेस में ही लिख सकते हैंयह डिफ़ॉल्ट कीवर्ड वाला एक मेथड है और क्लास इस मेथड को ओवरराइड कर सकती है
2मेथड इनवोकेशनस्टेटिक मेथड को केवल इंटरफेस क्लास पर इनवोक किया जा सकता है, क्लास पर नहीं।इसे इंटरफेस के साथ-साथ क्लास पर भी इनवोक किया जा सकता है
3मेथड नामइंटरफेस और इम्प्लीमेंटिंग क्लास, दोनों का एक ही नाम का स्टेटिक मेथड हो सकता है बिना एक-दूसरे को ओवरराइड किए।हम इम्प्लीमेंटिंग क्लास में डिफ़ॉल्ट मेथड को ओवरराइड कर सकते हैं
4उपयोग का मामलाइसे यूटिलिटी मेथड के रूप में इस्तेमाल किया जा सकता हैइसे सभी इम्प्लीमेंटिंग क्लास में सामान्य कार्यक्षमता प्रदान करने के लिए इस्तेमाल किया जा सकता है

इंटरफेस में डिफ़ॉल्ट और स्टेटिक मेथड का उदाहरण

public interface DefaultStaticExampleInterface {
    default void show() {
        System.out.println("Java 8 में - डिफ़ॉल्ट मेथड - DefaultStaticExampleInterface");
    }
    static void display() {
        System.out.println("DefaultStaticExampleInterface में");
    }
}
public class DefaultStaticExampleClass implements DefaultStaticExampleInterface {
}
public class Main {
    public static void main(String args[]) {
        // इंटरफेस पर इंटरफेस स्टेटिक मेथड कॉल करें
        DefaultStaticExampleInterface.display();
        DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass();
        // क्लास पर डिफ़ॉल्ट मेथड कॉल करें
        defaultStaticExampleClass.show();
    }
}
  1. - जावा में Thread और Runnable के बीच अंतर

    थ्रेड एक्जीक्यूशन का नया थ्रेड बनाने के दो तरीके हैं। एक है Thread क्लास का सबक्लास घोषित करना। इस सबक्लास को Thread क्लास के run मेथड को ओवरराइड करना चाहिए। सबक्लास का इंस्टेंस तब एलोकेट और स्टार्ट किया जा सकता है। थ्रेड बनाने का दूसरा तरीका है Runnable इंटरफेस को इम्प्लीमेंट करने वाली क्लास घोषित

  1. - Java में Queue इंटरफेस की peek(), poll() और remove() विधि में अंतर

    यह एक संग्रह का प्रतिनिधित्व करता है जो प्रसंस्करण से पहले डेटा रखने के लिए अभिप्रेत है। यह फर्स्ट-इन-फर्स्ट-आउट (FIFO) प्रकार की व्यवस्था है। कतार में डाला गया पहला तत्व उससे निकाला गया पहला तत्व होता है। peek() विधि यह विधि वर्तमान कतार के शीर्ष पर ऑब्जेक्ट को लौटाती है, बिना इसे हटाए। यदि कतार खा

  1. - एब्स्ट्रैक्ट क्लास और इंटरफेस में अंतर

    एक एब्स्ट्रैक्ट क्लास में इंस्टेंस मेथड्स हो सकते हैं जो डिफ़ॉल्ट व्यवहार लागू करते हैं। एक इंटरफेस केवल कॉन्स्टेंट्स और इंस्टेंस मेथड्स घोषित कर सकता है, लेकिन डिफ़ॉल्ट व्यवहार लागू नहीं कर सकता और सभी मेथड्स अंतर्निहित रूप से एब्स्ट्रैक्ट होते हैं। एक इंटरफेस के सभी मेंबर्स पब्लिक होते हैं और कोई