जावा में एक इंटरफेस क्लास के समान है लेकिन, इसमें केवल एब्स्ट्रैक्ट मेथड्स और फील्ड्स होते हैं जो फाइनल और स्टैटिक हैं।
चूंकि Java8 में इंटरफेसेस में स्टैटिक मेथड्स और डिफ़ॉल्ट मेथड्स पेश किए गए हैं। अन्य एब्स्ट्रैक्ट मेथड्स के विपरीत ये वे मेथड्स हैं जिनका डिफ़ॉल्ट कार्यान्वयन हो सकता है। यदि आपके पास इंटरफेस में डिफ़ॉल्ट मेथड है, तो इस इंटरफेस को इम्प्लीमेंट करने वाली क्लासेस में इसे ओवरराइड (बॉडी प्रदान करना) करना अनिवार्य नहीं है।
संक्षेप में, आप इम्प्लीमेंटिंग क्लासेस के ऑब्जेक्ट्स का उपयोग करके इंटरफेस के डिफ़ॉल्ट मेथड्स को एक्सेस कर सकते हैं।
उदाहरण
interface MyInterface{ public static int num = 100; public default void display() { System.out.println("display method of MyInterface"); } } public class InterfaceExample implements MyInterface{ public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); obj.display(); } }आउटपुट
display method of MyInterface
डिफ़ॉल्ट मेथड्स को ओवरराइड करना
आप इम्प्लीमेंटिंग क्लास से इंटरफेस के डिफ़ॉल्ट मेथड को ओवरराइड कर सकते हैं।
उदाहरण
interface MyInterface{ public static int num = 100; public default void display() { System.out.println("display method of MyInterface"); } } public class InterfaceExample implements MyInterface{ public void display() { System.out.println("display method of class"); } public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); obj.display(); } }आउटपुट
display method of class