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

C# में इनहेरिटेंस बनाम कंपोजिशन

इनहेरिटेंस (विरासत)

इनहेरिटेंस से आप नई क्लास को मौजूदा क्लास के मेंबर्स इनहेरिट करने के लिए नामित कर सकते हैं। मौजूदा क्लास को बेस क्लास और नई क्लास को डेराइव्ड क्लास कहा जाता है। इनहेरिटेंस IS-A संबंध लागू करता है।

उदाहरण: Mammal IS-A Animal, Dog IS-A Mammal इसलिए Dog IS-A Animal।

बेस क्लास Shape के डेराइव्ड क्लास: Circle, Square, Rectangle।

कंपोजिशन (संरचना)

कंपोजिशन में, यदि पैरेंट ऑब्जेक्ट डिलीट हो जाता है, तो चाइल्ड ऑब्जेक्ट भी अपनी स्थिति खो देता है। कंपोजिशन एग्रीगेशन का विशेष प्रकार है और PART-OF संबंध देता है।

उदाहरण: Car HAS-A Engine। यदि कार नष्ट होती है, तो इंजन भी नष्ट हो जाता है।

कोड उदाहरण:

public class Engine { 
    // इंजन डिटेल्स
} 

public class Car { 
    Engine eng = new Engine(); // कंपोजिशन - Car में Engine शामिल है
    // ...
}

तुलना:

पहलूइनहेरिटेंसकंपोजिशन
संबंधIS-AHAS-A / PART-OF
कपलिंगटाइट (टाइटली कपल्ड)लूज़ (लूज़ली कपल्ड)
लचीलापनकम (कंपाइल टाइम)अधिक (रनटाइम बदल सकते हैं)
कोड पुनर्उपयोगविरासत के माध्यम सेडेलिगेशन के माध्यम से
लाइफटाइमस्वतंत्रचाइल्ड पैरेंट पर निर्भर

सिद्धांत: "कंपोजिशन को इनहेरिटेंस पर प्राथमिकता दें" (Favor Composition over Inheritance) - जब तक IS-A संबंध स्पष्ट न हो।

  1. C# में Console क्लास C# में Console क्लास

    C# में Console क्लास का उपयोग कंसोल एप्लिकेशन के लिए मानक इनपुट, आउटपुट और त्रुटि स्ट्रीम को दर्शाने के लिए किया जाता है। आइए C# में Console क्लास प्रॉपर्टीज के कुछ उदाहरण देखते हैं: Console.CursorLeft प्रॉपर्टी C# में कंसोल का CursorLeft बदलने के लिए Console.CursorLeft प्रॉपर्टी का उपयोग करें। उदा

  1. Java में इनहेरिटेंस के प्रकार Java में इनहेरिटेंस के प्रकार

    Java तीन प्रकार के इनहेरिटेंस का समर्थन करता है −सिंगल लेवल इनहेरिटेंस - एक क्लास एक सिंगल क्लास से प्रॉपर्टीज इनहेरिट करती है। उदाहरण के लिए, क्लास B क्लास A को इनहेरिट करती है।मल्टीलेवल इनहेरिटेंस - एक क्लास एक क्लास से प्रॉपर्टीज इनहेरिट करती है जिसने फिर से प्रॉपर्टीज इनहेरिट की हैंहायरार्किकल इ

  1. पायथन में इनहेरिटेंस (Inheritance) पायथन में इनहेरिटेंस (Inheritance)

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में इनहेरिटेंस और क्लासेस को एक्सटेंड करने के बारे में जानेंगे।इनहेरिटेंस वास्तविक दुनिया के संबंधों को अच्छी तरह से दर्शाता है, पुन: प्रयोज्यता प्रदान करता है और ट्रांजिटिविटी का समर्थन करता है। यह तेज़ विकास समय, आसान रखरखाव और विस्तार में आसानी प्र