Oracle के Javadocs के अनुसार -
डिफ़ॉल्ट विधियां आपको अपने पुस्तकालयों के इंटरफेस में नई कार्यक्षमता जोड़ने में सक्षम बनाती हैं और उन इंटरफेस के पुराने संस्करणों के लिए लिखे गए कोड के साथ बाइनरी संगतता सुनिश्चित करती हैं।
एक स्थिर विधि एक ऐसी विधि है जो उस वर्ग से जुड़ी होती है जिसमें इसे किसी वस्तु के बजाय परिभाषित किया जाता है। कक्षा का प्रत्येक उदाहरण अपने स्थिर तरीकों को साझा करता है।
इंटरफ़ेस में स्टेटिक विधि इंटरफ़ेस का हिस्सा है जिसे लागू नहीं किया जा सकता है या इसे ओवरराइड नहीं किया जा सकता है जबकि क्लास डिफ़ॉल्ट विधि को ओवरराइड कर सकता है।
Sr. नहीं. | <वें शैली ="चौड़ाई:9.796%; पाठ-संरेखण:केंद्र;">कुंजीस्टेटिक इंटरफेस मेथड | डिफ़ॉल्ट विधि | |
---|---|---|---|
1 | मूलभूत | यह एक स्थिर विधि है जो केवल इंटरफ़ेस से संबंधित है। हम इस पद्धति के कार्यान्वयन को इंटरफ़ेस में ही लिख सकते हैं | यह डिफ़ॉल्ट कीवर्ड वाली एक विधि है और वर्ग इस पद्धति को ओवरराइड कर सकता है |
2 | विधि आह्वान | स्थैतिक विधि केवल इंटरफ़ेस वर्ग पर लागू हो सकती है कक्षा पर नहीं। | इसे इंटरफ़ेस के साथ-साथ कक्षा पर भी लागू किया जा सकता है |
3 | विधि का नाम | इंटरफ़ेस और कार्यान्वयन वर्ग, दोनों में एक दूसरे को ओवरराइड किए बिना एक ही नाम के साथ स्थिर विधि हो सकती है। | हम कक्षा को लागू करने में डिफ़ॉल्ट विधि को ओवरराइड कर सकते हैं |
4. | केस का प्रयोग करें | इसका उपयोग उपयोगिता पद्धति के रूप में किया जा सकता है | इसका उपयोग सभी कार्यान्वयन वर्गों में सामान्य कार्यक्षमता प्रदान करने के लिए किया जा सकता है |
इंटरफ़ेस में डिफ़ॉल्ट और स्थिर विधि का उदाहरण
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { // Call interface static method on Interface DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); // Call default method on Class defaultStaticExampleClass.show(); } }