अनुशंसित, 2024

संपादक की पसंद

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

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

तुलना चार्ट

तुलना के लिए आधारकक्षाइंटरफेस
बुनियादीऑब्जेक्ट्स बनाने के लिए एक क्लास को तत्काल किया जाता है।एक इंटरफ़ेस को कभी भी त्वरित नहीं किया जा सकता है क्योंकि विधियों को लागू करने पर कोई कार्रवाई करने में असमर्थ हैं।
कीवर्डकक्षाइंटरफेस
पहुँच निर्दिष्ट करनेवालाएक वर्ग के सदस्य निजी, सार्वजनिक या संरक्षित हो सकते हैं।एक इंटरफ़ेस के सदस्य हमेशा सार्वजनिक होते हैं।
तरीकेएक वर्ग के तरीकों को एक विशिष्ट कार्रवाई करने के लिए परिभाषित किया गया है।एक अंतरफलक में तरीके विशुद्ध रूप से अमूर्त हैं।
लागू / बढ़ाएँएक वर्ग किसी भी संख्या के इंटरफ़ेस को लागू कर सकता है और केवल एक वर्ग का विस्तार कर सकता है।एक इंटरफ़ेस कई इंटरफेस का विस्तार कर सकता है लेकिन किसी भी इंटरफ़ेस को लागू नहीं कर सकता है।
निर्माताचरों को आरंभ करने के लिए एक वर्ग में कंस्ट्रक्टर हो सकते हैं।एक इंटरफ़ेस में एक कंस्ट्रक्टर कभी नहीं हो सकता है क्योंकि प्रारंभ करने के लिए शायद ही कोई चर है।

कक्षा की परिभाषा

एक वर्ग जावा प्रोग्रामिंग का एक सबसे महत्वपूर्ण पहलू है बिना कक्षाओं के आप एक जावा प्रोग्राम को लागू नहीं कर सकते। एक वर्ग संदर्भ प्रकार बनाता है और ये संदर्भ प्रकार वस्तुओं को बनाने के लिए उपयोग किए जाते हैं। एक कक्षा में एक हस्ताक्षर और एक निकाय होता है। एक वर्ग के हस्ताक्षर में कक्षा का नाम और जानकारी होती है जो बताती है कि क्या कक्षा को दूसरी कक्षा विरासत में मिली है। एक वर्ग के शरीर में क्षेत्र और विधियां होती हैं जो उन क्षेत्रों पर काम करती हैं। कीवर्ड क्लास का उपयोग करके एक क्लास बनाया जाता है। आओ हम देखते हैं कि कैसे एक वर्ग घोषित करें।

 वर्ग class_name {/ * फ़ील्ड ... विधियाँ * /} 

जब एक कक्षा को तत्काल बनाया जाता है, तो बनाई गई प्रत्येक वस्तु में उनके साथ फ़ील्ड और विधियों की एक प्रति होती है। किसी वर्ग के अंदर घोषित किए गए क्षेत्र और सदस्य स्थिर या गैर-स्थिर हो सकते हैं। स्थैतिक सदस्यों का मूल्य प्रत्येक वस्तु के लिए स्थिर होता है, जबकि गैर-स्थैतिक सदस्यों को प्रत्येक वस्तु द्वारा इसकी आवश्यकता के अनुसार अलग-अलग प्रारंभ किया जाता है।

एक वर्ग के सदस्यों के पास एक्सेस स्पेसियर होते हैं जो उपयोगकर्ता या उपवर्गों के लिए सदस्यों की दृश्यता और पहुंच को तय करते हैं। पहुंच विनिर्देशक सार्वजनिक, निजी और संरक्षित हैं। एक्सेस स्पेसियर का उपयोग करके एक वर्ग को दूसरे वर्ग से विरासत में लिया जा सकता है जो एक उपवर्ग (विरासत वर्ग) में एक सुपरक्लास (विरासत में मिला वर्ग) के सदस्यों की दृश्यता का फैसला करेगा। इस प्रकार क्लास ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में डेटा छिपाने और इनकैप्सुलेशन की अवधारणा को पूरा करता है।

इंटरफ़ेस की परिभाषा

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

 इंटरफ़ेस interface_name {प्रकार var_name = मूल्य; प्रकार 1 (पैरामीटर-सूची); प्रकार 2 (पैरामीटर-सूची); । । } 

एक इंटरफ़ेस इसके अंदर घोषित किसी भी विधि को परिभाषित नहीं करता है क्योंकि इसे संचालित करने के लिए खेतों में कमी है। सिर्फ इसलिए कि एक इंटरफ़ेस के अंदर कोई भी विधि कोई कार्रवाई नहीं करती है, एक इंटरफ़ेस कभी भी त्वरित नहीं हो सकता है। यदि किसी इंटरफ़ेस में कोई फ़ील्ड सदस्य है, तो यह उनके घोषणा के समय आरंभीकृत होना चाहिए। एक इंटरफ़ेस में कभी कोई कंस्ट्रक्टर नहीं होता है क्योंकि इसे आरंभ करने के लिए फ़ील्ड सदस्यों की कमी होती है। इसलिए, एक इंटरफ़ेस केवल यह परिभाषित करता है कि क्लास को क्या करना चाहिए इसके बजाय उसे क्या करना चाहिए।

एक बार बनाया गया इंटरफ़ेस किसी भी वर्ग के कीवर्ड इम्प्लीमेंट्स का उपयोग करके लागू किया जा सकता है । लेकिन एक इंटरफ़ेस को लागू करने वाली कक्षाओं को एक इंटरफ़ेस के अंदर सभी तरीकों को परिभाषित करना होगा। एक इंटरफ़ेस दूसरे कीवर्ड को भी बढ़ा सकता है । यदि कोई वर्ग एक ऐसे इंटरफ़ेस को लागू करता है जो दूसरे इंटरफ़ेस का विस्तार करता है। तब एक वर्ग को एक श्रृंखला में दिखाई देने वाले दोनों इंटरफेस के तरीकों को परिभाषित करना चाहिए। एक इंटरफ़ेस के अंदर के तरीके हमेशा सार्वजनिक होने चाहिए क्योंकि इन्हें लागू करने वाली कक्षाओं द्वारा पहुँचा जाना चाहिए।

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

  1. एक वर्ग को उसकी वस्तु बनाकर त्वरित किया जा सकता है। एक इंटरफ़ेस को कभी भी त्वरित नहीं किया जाता है क्योंकि एक इंटरफ़ेस के अंदर घोषित किए गए तरीके अमूर्त हैं और कोई भी क्रिया नहीं करते हैं, इसलिए किसी भी इंटरफ़ेस को तत्काल करने का कोई उपयोग नहीं है।
  2. कीवर्ड क्लास का उपयोग करके एक वर्ग घोषित किया जाता है। उसी तरह, एक कीवर्ड इंटरफेस का उपयोग करके एक इंटरफ़ेस बनाया जाता है।
  3. एक वर्ग के सदस्यों के पास सार्वजनिक, निजी, संरक्षित जैसे एक्सेस स्पेसियर हो सकते हैं। लेकिन एक इंटरफ़ेस के सदस्य हमेशा सार्वजनिक होते हैं क्योंकि उन्हें उन्हें लागू करने वाली कक्षाओं द्वारा एक्सेस किया जाना होता है।
  4. कक्षा के अंदर के तरीकों को कक्षा में घोषित क्षेत्रों पर कार्रवाई करने के लिए परिभाषित किया गया है। जैसा कि इंटरफ़ेस में फ़ील्ड की घोषणा में कमी है, इंटरफ़ेस के अंदर के तरीके विशुद्ध रूप से सार हैं।
  5. एक वर्ग किसी भी संख्या में इंटरफेस को लागू कर सकता है लेकिन केवल एक सुपर क्लास का विस्तार कर सकता है। एक इंटरफ़ेस किसी भी इंटरफ़ेस को बढ़ा सकता है लेकिन किसी भी इंटरफ़ेस को लागू नहीं कर सकता है।
  6. एक वर्ग में वैरिएबल हैं जो इसके अंदर परिभाषित करते हैं ताकि चर को आरंभ किया जा सके। लेकिन, एक इंटरफेस के पास कोई कंस्ट्रक्टर नहीं है क्योंकि इनिशियलाइज़ होने के लिए कोई फ़ील्ड नहीं है। एक इंटरफ़ेस के क्षेत्र केवल उनकी घोषणा के समय आरंभीकृत होते हैं।

निष्कर्ष:

दोनों वर्गों और इंटरफेस का अपना महत्व है। एक वर्ग का उपयोग तब किया जाता है जब हमें यह परिभाषित करने की आवश्यकता होती है कि कार्य कैसे किया जाएगा। एक इंटरफ़ेस का उपयोग तब किया जाता है जब हमें यह जानना होता है कि किस कार्य को करना है।

Top