जावा में, अमूर्त वर्गों और इंटरफेस का उपयोग करके अमूर्तता प्राप्त की जाती है। दोनों में अमूर्त विधियाँ होती हैं जिन्हें एक बाल वर्ग या कार्यान्वयन वर्ग को लागू करना होता है। अमूर्त वर्ग और एक इंटरफ़ेस के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।
Sr. नहीं। वें> <वें शैली ="पाठ-संरेखण:केंद्र; चौड़ाई:12.3129%;">कुंजी वें> <वें शैली ="पाठ-संरेखण:केंद्र;">सार वर्ग वें> <वें शैली ="पाठ-संरेखण:केंद्र;">इंटरफ़ेस वें> | |||
---|---|---|---|
1 | समर्थित तरीके | एब्स्ट्रैक्ट क्लास में एब्सट्रैक्ट और ठोस दोनों तरीके हो सकते हैं। | इंटरफ़ेस में केवल सार विधियाँ हो सकती हैं। जावा 8 के बाद, इसमें डिफ़ॉल्ट के साथ-साथ स्थिर तरीके भी हो सकते हैं। |
2 | एकाधिक वंशानुक्रम | एकाधिक वंशानुक्रम समर्थित नहीं है। | इंटरफ़ेस एकाधिक वंशानुक्रम का समर्थन करता है। |
3 | समर्थित चर | अंतिम, गैर-अंतिम, स्थिर और गैर-स्थिर चर समर्थित हैं। | केवल स्थिर और अंतिम चर की अनुमति है। |
4 | कार्यान्वयन | सार वर्ग एक इंटरफ़ेस लागू कर सकता है। | इंटरफ़ेस एक इंटरफ़ेस को लागू नहीं कर सकता, यह एक इंटरफ़ेस का विस्तार कर सकता है। |
5 | कीवर्ड | एब्स्ट्रैक्ट क्लास को एब्स्ट्रैक्ट कीवर्ड का उपयोग करके घोषित किया गया। | इंटरफ़ेस कीवर्ड का उपयोग करके इंटरफ़ेस घोषित किया गया है। |
6 | विरासत | एब्स्ट्रैक्ट क्लास एक्सटेंडेड कीवर्ड का उपयोग करके और एक इंटरफेस को लागू करने के लिए एक और क्लास इनहेरिट कर सकता है। | इंटरफ़ेस केवल एक पूर्णांक को इनहेरिट कर सकता है। |
7 | विरासत | एब्स्ट्रैक्ट क्लास को विस्तृत कीवर्ड का उपयोग करके इनहेरिट किया जा सकता है। | इंटरफ़ेस को केवल इम्प्लीमेंट कीवर्ड का उपयोग करके लागू किया जा सकता है। |
8 | पहुँच | Abstract class में निजी, सार्वजनिक जैसे किसी भी प्रकार के सदस्य हो सकते हैं। | इंटरफ़ेस में केवल सार्वजनिक सदस्य हो सकते हैं। |
एब्स्ट्रैक्ट क्लास बनाम इंटरफ़ेस का उदाहरण
JavaTester.java
public class JavaTester { public static void main(String args[]) { Animal tiger = new Tiger(); tiger.eat(); Cat lion = new Lion(); lion.eat(); } } interface Animal { public void eat(); } class Tiger implements Animal { public void eat(){ System.out.println("Tiger eats"); } } abstract class Cat { abstract public void eat(); } class Lion extends Cat{ public void eat(){ System.out.println("Lion eats"); } }
आउटपुट
Tiger eats Lion eats