सी # में वंशानुक्रम का उपयोग कैसे करें I

Si Mem Vansanukrama Ka Upayoga Kaise Karem I



ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज में कोड लिखते समय, हम ऐसी स्थितियों में आ सकते हैं, जहाँ हमें मौजूदा कोड को एक नए वर्ग में पुन: उपयोग करने या किसी मौजूदा वर्ग में अतिरिक्त कार्यक्षमता जोड़ने की आवश्यकता होती है। ऐसे मामलों में विरासत काम आती है। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में वंशानुक्रम कक्षाओं को किसी अन्य वर्ग के गुणों और व्यवहार को प्राप्त करने की अनुमति देता है। यह आलेख सी # और इसके विभिन्न प्रकारों में विरासत के उपयोग को शामिल करता है।

विषयसूची

सी # में वंशानुक्रम क्या है

सी # में वंशानुक्रम कैसे काम करता है







सी # में वंशानुक्रम के प्रकार



निष्कर्ष



सी # में वंशानुक्रम क्या है

सी # में विरासत का उपयोग करके, एक वर्ग दूसरे वर्ग के गुणों और विधियों को ले या प्राप्त कर सकता है। दूसरे शब्दों में, यह एक मौजूदा वर्ग के आधार पर एक नई कक्षा के निर्माण की अनुमति देता है, जिसे बेस क्लास या सुपर क्लास के रूप में जाना जाता है। आधार वर्ग के गुणों को लेकर बनने वाले वर्ग को कहा जाता है एक व्युत्पन्न वर्ग या उपवर्ग।





C # में यह व्युत्पन्न वर्ग न केवल आधार वर्ग के गुण लेता है बल्कि अपनी अनूठी विशेषताओं को भी जोड़ सकता है।

सी # में वंशानुक्रम कैसे काम करता है

सी # में, कोलन के उपयोग के माध्यम से विरासत प्राप्त की जाती है (:) प्रतीक। बेस क्लास का नाम कोलन के बाद परिभाषित किया गया है, और यह व्युत्पन्न वर्ग द्वारा निर्दिष्ट किया गया है।



निम्नलिखित एक व्युत्पन्न वर्ग बनाने के लिए सिंटैक्स है जो आधार वर्ग से गुण लेता है:

वर्ग व्युत्पन्न वर्ग : बेस क्लास

{

// व्युत्पन्न वर्ग के सदस्य

}

यहाँ इस कोड में, व्युत्पन्न वर्ग व्युत्पन्न वर्ग का नाम है, और बेस क्लास आधार वर्ग का नाम है। : प्रतीक इंगित करता है कि व्युत्पन्न क्लास बेस क्लास से विरासत में है। DerivedClass के सदस्य बेसक्लास सदस्यों तक पहुँच सकते हैं, बशर्ते वे निजी न हों।

सी # में वंशानुक्रम के प्रकार

C# चार प्रकार की वंशानुक्रम का समर्थन करता है: एकल, बहु-स्तरीय, श्रेणीबद्ध और एकाधिक वंशानुक्रम। आइए प्रत्येक प्रकार को देखें।

एकल विरासत

एकल वंशानुक्रम सबसे सामान्य प्रकार की विरासत है, जहाँ एक व्युत्पन्न वर्ग केवल एक आधार वर्ग के गुण लेता है या प्राप्त करता है।

उदाहरण के लिए, दिया गया कोड वर्ग पदानुक्रम की व्याख्या करता है और वंशानुक्रम अवधारणाओं को प्रदर्शित करता है।

सिस्टम का उपयोग करना ;

सिस्टम का उपयोग करना ;
क्लास कार
{
जनता खालीपन शुरू ( )
{
सांत्वना देना। पंक्ति लिखो ( 'कार स्टार्ट' ) ;
}
}
वर्ग टेस्ला : कार
{
जनता खालीपन में तेजी लाने ( )
{
सांत्वना देना। पंक्ति लिखो ( 'टेस्ला त्वरण' ) ;
}
}
वर्ग कार्यक्रम
{
स्थिर खालीपन मुख्य ( डोरी [ ] तर्क )
{
टेस्ला मायटेस्ला = नई टेस्ला ( ) ;
myTesla. शुरू ( ) ; // आउटपुट: कार स्टार्ट हुई
myTesla. में तेजी लाने ( ) ; // आउटपुट: टेस्ला में तेजी
}
}

उपरोक्त कोड में, कार वर्ग बेस क्लास है और इसकी एक विधि है शुरू करना() , जो केवल संदेश को प्रिंट करता है कार स्टार्ट हुई कंसोल के लिए।

टेस्ला वर्ग कार वर्ग से लिया गया है, और यह कार वर्ग के सभी गुण लेता है। टेस्ला क्लास नामक एक विधि जोड़ता है तेजी () , जो संदेश को प्रिंट करता है टेस्ला में तेजी कंसोल के लिए।

मुख्य() फ़ंक्शन टेस्ला वर्ग के एक उदाहरण को परिभाषित करता है जिसे कहा जाता है myTesla और उसके Start() और Accelerate() तरीकों को कॉल करता है।

बहु स्तरीय विरासत

बहु-स्तरीय वंशानुक्रम वह है जहाँ एक व्युत्पन्न वर्ग दूसरे व्युत्पन्न वर्ग से विरासत में मिलता है, जो बदले में एक आधार वर्ग से प्राप्त होता है।

उदाहरण के लिए, निम्नलिखित सी # कोड कक्षा पदानुक्रम में विरासत और विधि ओवरराइडिंग प्रदर्शित करता है।

सिस्टम का उपयोग करना ;
वर्ग पशु
{
जनता खालीपन खाना ( )
{
सांत्वना देना। पंक्ति लिखो ( 'पशु भक्षण' ) ;
}
}
वर्ग स्तनपायी : जानवर
{
जनता खालीपन दौड़ना ( )
{
सांत्वना देना। पंक्ति लिखो ( 'स्तनपायी चल रहा है' ) ;
}
}
वर्ग कुत्ता : सस्तन प्राणी
{
जनता खालीपन कुत्ते की भौंक ( )
{
सांत्वना देना। पंक्ति लिखो ( 'कुत्ते भौंक रहे हैं' ) ;
}
}
वर्ग कार्यक्रम
{
स्थिर खालीपन मुख्य ( डोरी [ ] तर्क )
{
मेरा कुत्ता कुत्ता = नया कुत्ता ( ) ;
मेरा कुत्ता। खाना ( ) ; // आउटपुट: जानवर खा रहा है
मेरा कुत्ता। दौड़ना ( ) ; // आउटपुट: स्तनपायी चल रहा है
मेरा कुत्ता। कुत्ते की भौंक ( ) ; // आउटपुट: कुत्ते का भौंकना
}
}

यहाँ कुत्ता एक व्युत्पन्न वर्ग है जो इनहेरिट करता है सस्तन प्राणी , जो बदले में से विरासत में मिलता है जानवर . डॉग क्लास के पास स्तनपायी और पशु के सभी गुणों, विधियों और व्यवहार तक पहुंच है, और यह अपनी अनूठी पद्धति को भी परिभाषित कर सकता है कुत्ते की भौंक() .

पशु वर्ग बेस क्लास है और इसकी एक विधि है खाना() , जो केवल कंसोल को एनिमल ईटिंग संदेश प्रिंट करता है।

स्तनपायी वर्ग पशु वर्ग से लिया गया है और नामक एक विधि जोड़ता है दौड़ना() , जो कंसोल पर चलने वाले स्तनपायी संदेश को प्रिंट करता है।

कुत्ता वर्ग स्तनपायी वर्ग से लिया गया है और एक विधि जोड़ता है जिसे कहा जाता है कुत्ते की भौंक() , जो डॉग बार्किंग संदेश को कंसोल पर प्रिंट करता है।

मुख्य () विधि डॉग क्लास नामक एक उदाहरण बनाती है मेरा कुत्ता और इसके ईट (), रन (), और बार्क () विधियों को कॉल करता है।

ध्यान दें कि डॉग वर्ग में ईट () और रन () विधियों को परिभाषित नहीं किया गया है, लेकिन इसके मूल वर्ग से विरासत में मिला है जानवर और सस्तन प्राणी , क्रमश। कुत्ते की भौंक() विधि केवल डॉग क्लास में परिभाषित की गई है।

  मूलपाठ
विवरण स्वचालित रूप से जेनरेट किया गया

पदानुक्रमित विरासत

पदानुक्रमित विरासत में, व्युत्पन्न वर्गों की विभिन्न संख्याएँ केवल एक आधार वर्ग से विरासत में मिली हैं। उदाहरण के लिए:

सिस्टम का उपयोग करना ;
कक्षा का आकार
{
जनता खालीपन खींचना ( )
{
सांत्वना देना। पंक्ति लिखो ( 'आकृति बनाना' ) ;
}
}
वर्ग मंडल : आकार
{
जनता खालीपन भरना ( )
{
सांत्वना देना। पंक्ति लिखो ( 'भरने का घेरा' ) ;
}
}
वर्ग चौक : आकार
{
जनता खालीपन रंग ( )
{
सांत्वना देना। पंक्ति लिखो ( 'रंग चौक' ) ;
}
}
वर्ग कार्यक्रम
{
स्थिर खालीपन मुख्य ( डोरी [ ] तर्क )
{
myCircle को सर्किल करें = नया सर्किल ( ) ;
myCircle. खींचना ( ) ; // आउटपुट: आरेखण आकार
myCircle. भरना ( ) ; // आउटपुट: सर्कल भरना

स्क्वायर माय स्क्वायर = नया स्क्वायर ( ) ;
mySquare. खींचना ( ) ; // आउटपुट: आरेखण आकार
mySquare. रंग ( ) ; // आउटपुट: रंग वर्ग
}
}

उपरोक्त कोड में, दोनों घेरा और वर्ग व्युत्पन्न वर्ग हैं जो इनहेरिट करते हैं आकार . उनके पास आकृति में परिभाषित ड्रा () विधि तक पहुंच है और वे अपने स्वयं के अनूठे तरीकों को भर सकते हैं () और रंग () को परिभाषित कर सकते हैं।

यहां हमने सर्किल क्लास नाम का एक ऑब्जेक्ट बनाया है myCircle और की एक वस्तु वर्ग वर्ग नामित mySquare . हम फिर कॉल करते हैं खींचना() विधि, जो दोनों वस्तुओं पर आकृति वर्ग से विरासत में मिली है।

अगला, हम कॉल करते हैं भरना() MyCircle पर विधि, जो कि Circle वर्ग के लिए विशिष्ट है, और रंग() mySquare पर विधि, जो वर्ग वर्ग के लिए विशिष्ट है।

आउटपुट नीचे के रूप में कंसोल पर प्रिंट किया जाएगा:

  मूलपाठ
विवरण स्वचालित रूप से मध्यम विश्वास के साथ उत्पन्न होता है

एकाधिक वंशानुक्रम

मल्टीपल इनहेरिटेंस वह जगह है जहाँ एक व्युत्पन्न वर्ग कई आधार वर्गों से प्राप्त होता है। हालांकि, सी # एकाधिक विरासत का समर्थन नहीं करता है। समान कार्यक्षमता प्राप्त करने के लिए, C# उपयोग करता है इंटरफेस .

निष्कर्ष

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