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

Java में Abstract Class और Concrete Class में अंतर

Java में, एब्स्ट्रैक्शन Abstract क्लासेज और इंटरफेस का उपयोग करके प्राप्त किया जाता है। एक Abstract क्लास में एब्स्ट्रैक्ट मेथड्स होते हैं जिन्हें चाइल्ड क्लास इम्प्लीमेंट करती है। Abstract क्लास और एक Concrete क्लास के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

क्र. सं.मुख्य बिंदुAbstract ClassConcrete Class
1समर्थित मेथड्सAbstract क्लास में एब्स्ट्रैक्ट और कंक्रीट दोनों मेथड्स हो सकते हैं।एक Concrete क्लास में केवल कंक्रीट मेथड्स हो सकते हैं। यहां तक कि एक भी एब्स्ट्रैक्ट मेथड क्लास को Abstract बना देता है।
2इंस्टेंशिएशनAbstract क्लास को new कीवर्ड का उपयोग करके इंस्टेंशिएट नहीं किया जा सकता।Concrete क्लास को new कीवर्ड का उपयोग करके इंस्टेंशिएट किया जा सकता है।
3एब्स्ट्रैक्ट मेथडAbstract क्लास में एब्स्ट्रैक्ट मेथड्स हो भी सकते हैं और नहीं भी।Concrete क्लास में एब्स्ट्रैक्ट मेथड नहीं हो सकता।
4FinalAbstract क्लास को final क्लास के रूप में घोषित नहीं किया जा सकता।Concrete क्लास को final घोषित किया जा सकता है।
5कीवर्डAbstract क्लास को abstract कीवर्ड का उपयोग करके घोषित किया जाता है।Concrete क्लास की घोषणा के दौरान abstract कीवर्ड नहीं होता।
6इनहेरिटेंसAbstract क्लास extends कीवर्ड का उपयोग करके दूसरी क्लास को इनहेरिट कर सकती है और एक इंटरफ़ेस को इम्प्लीमेंट कर सकती है।इंटरफ़ेस केवल एक इंटरफ़ेस को इनहेरिट कर सकता है।
7इंटरफ़ेसAbstract क्लास अकेले इंटरफ़ेस को इम्प्लीमेंट नहीं कर सकती। इंस्टेंशिएशन के लिए इंटरफ़ेस का उपयोग करने के लिए एक चाइल्ड क्लास की आवश्यकता होती है।इंटरफ़ेस को आसानी से इम्प्लीमेंट किया जा सकता है।

Abstract Class बनाम Concrete Class का उदाहरण

JavaTester.java

public class JavaTester { 
    public static void main(String args[]) { 
        Cat lion = new Lion(); 
        lion.eat(); 
    } 
} 
abstract class Cat { 
    abstract public void eat(); 
} 
class Lion extends Cat{ 
    public void eat(){ 
        System.out.println("Lion eats"); 
    } 
}

आउटपुट

Lion eats
  1. - Java में ClassNotFoundException और NoClassDefFoundError में क्या अंतर है?

    ClassNotFoundException और NoClassDefFoundError दोनों ही एरर हैं जब JVM या ClassLoader रन-टाइम पर लोड करते समय उपयुक्त क्लास नहीं ढूंढ पाता। ClassNotFoundException एक चेक्ड अपवाद है और NoClassDefFoundError एक Error है जो अनचेक्ड के अंतर्गत आता है। विभिन्न प्रकार के ClassLoader अलग-अलग स्रोतों से क्

  1. - Java में Exception क्लास और Error क्लास में क्या अंतर है?

    Exception क्लास और Error क्लास दोनों java.lang.Throwable क्लास के सबक्लास हैं। हम रनटाइम पर अपवादों को हैंडल कर सकते हैं लेकिन एरर्स को हैंडल नहीं कर सकते। Exceptions (अपवाद): ये रनटाइम पर होने वाली तार्किक त्रुटियों (logical errors) को दर्शाने वाले ऑब्जेक्ट्स हैं जो JVM को अस्पष्टता (ambiguity)

  1. - Java में Abstract Class

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