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

जावा में अमूर्त वर्ग और इंटरफ़ेस के बीच अंतर

जावा में, अमूर्त वर्गों और इंटरफेस का उपयोग करके अमूर्तता प्राप्त की जाती है। दोनों में अमूर्त विधियाँ होती हैं जिन्हें एक बाल वर्ग या कार्यान्वयन वर्ग को लागू करना होता है। अमूर्त वर्ग और एक इंटरफ़ेस के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

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

  1. जावा में इवेंट श्रोता इंटरफ़ेस और इवेंट एडेप्टर क्लास के बीच क्या अंतर हैं?

    एक ईवेंट लिस्टनर इंटरफ़ेस उन विधियों को परिभाषित करता है जिन्हें किसी विशेष प्रकार के ईवेंट के लिए ईवेंट हैंडलर द्वारा कार्यान्वित किया जाना चाहिए जबकि ईवेंट एडाप्टर class एक EventListener . का डिफ़ॉल्ट कार्यान्वयन प्रदान करता है इंटरफ़ेस। ईवेंट श्रोता द ईवेंट श्रोता घटनाओं को संभालने के लिए

  1. जावा में इंटरफ़ेस

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

  1. जावा में सार वर्ग

    जिस वर्ग की घोषणा में सार कीवर्ड होता है उसे अमूर्त वर्ग के रूप में जाना जाता है। एब्स्ट्रैक्ट क्लासेस में एब्सट्रैक्ट मेथड्स हो भी सकते हैं या नहीं भी हो सकते हैं, यानी बॉडी के बिना मेथड्स ( public void get(); ) लेकिन, यदि किसी वर्ग में कम से कम एक सार विधि है, तो कक्षा को सार घोषित किया जाना चाहि