इंटरफ़ेस बनाम सार वर्ग जावा में: क्या अंतर है?

विषय - सूची:

Anonim

इंटरफ़ेस क्या है?

इंटरफ़ेस एक खाका है जिसे एक वर्ग को लागू करने के लिए इस्तेमाल किया जा सकता है। इंटरफ़ेस में कोई ठोस तरीके (कोड वाले तरीके) शामिल नहीं हैं। एक अंतरफलक के सभी तरीके अमूर्त तरीके हैं।

एक इंटरफ़ेस तुरंत नहीं किया जा सकता है। हालांकि, इंटरफेस को लागू करने वाले वर्गों को तत्काल किया जा सकता है। इंटरफेस में उदाहरण चर नहीं होते हैं, लेकिन उनमें सार्वजनिक स्थैतिक अंतिम चर (जैसे, स्थिर वर्ग चर) हो सकते हैं

सार वर्ग क्या है?

एक वर्ग जिसके ऐलान में अमूर्त कीवर्ड होता है उसे एब्सट्रैक्ट क्लास कहा जाता है। अमूर्त कक्षाओं में कम से कम एक सार विधि होनी चाहिए। , अर्थात, बिना शरीर के तरीके। इसके कई ठोस तरीके हो सकते हैं।

सार कक्षाएं आपको कंक्रीट कक्षाओं के लिए ब्लूप्रिंट बनाने की अनुमति देती हैं। लेकिन विरासत वाले वर्ग को अमूर्त पद्धति को लागू करना चाहिए।

अमूर्त वर्गों को तत्काल नहीं किया जा सकता है।

इंटरफेस का उपयोग करने के लिए महत्वपूर्ण कारण

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

सार वर्ग का उपयोग करने के लिए महत्वपूर्ण कारण

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

इंटरफ़ेस बनाम। सार वर्ग

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

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

जावा में इंटरफ़ेस और सार वर्ग के लिए नमूना कोड

जावा में एक इंटरफ़ेस और अमूर्त वर्ग बनाने के लिए नमूना कोड निम्नलिखित है

इंटरफ़ेस सिंटैक्स

interface name{//methods}

जावा इंटरफ़ेस उदाहरण:

interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}

सार वर्ग वाक्य रचना

abstract class name{// code}

सार वर्ग उदाहरण:

abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}