सीशार्प के अंतर्गत base कीवर्ड का उपयोग base class के किसी मेम्बर को access करने के लिए किया जाता है। जब किसी क्लास का derived क्लास बनाया जाता है तब derived क्लास यदि base क्लास के किसी मेंबर को एक्सेस करना चाहता है तो उसके लिए base कीवर्ड का उपयोग किया जाता है। base कीवर्ड की सहायता से derived क्लास बेस क्लास के मेंबर वेरिएबल अथवा मेंबर मेथड अथवा बेस कंस्ट्रक्टर को एक्सेस कर सकता है। इस बात को उदाहरण से अच्छी तरह समझ सकते हैं।
उदाहरण १
निम्न उदाहरण में, बेस क्लास, Person और व्युत्पन्न Employee क्लास, दोनों में Getinfo नामक method है। base कीवर्ड का उपयोग करके, derived क्लास Employee के भीतर से बेस क्लास Person के Getinfo मेथड को कॉल करना संभव है।
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "Shrishesh Blog";
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee : Person
{
public string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine("Employee ID: {0}", id);
}
}
class TestClass
{
static void Main()
{
Employee E = new Employee();
E.GetInfo();
}
}
/*
Output
Name: Shrishesh Blog
SSN: 444-55-6666
Employee ID: ABC567EFG
*/
उदाहरण २
निम्न उदाहरण में यह दर्शाया गया है कि बेस क्लास के constructor को derived क्लास के भीतर कैसे कॉल किया जा सकता है। इसका अर्थ यह है कि जब derived क्लास का ऑब्जेक्ट बनेगा तब बेस क्लास का constructor भी कॉल होगा। लेकिन कौन सा constructor कॉल होगा यह base कीवर्ड से तय किया जा सकता है। उदाहरण में यह बहुत ही उत्तम रीति से व्यक्त है। ध्यान दीजिए कि बेस क्लास के पारामीटर युक्त constructor को कॉल कराने के लिए base कीवर्ड के कोष्ठक में पैरामीटर दिया जाता है। निम्न उदाहरण यह भी बताता है कि किस प्रकार एक constructor दूसरे constructor को कॉल कर सकता है। जब एक constructor दूसरे constructor को कॉल करता है तो कॉल किए गये constructor का execution पहले होता है उसके बाद कॉल करने वाला constructor execute होता है।
public class BaseClass
{
int num;
public BaseClass()
{
Console.WriteLine("in BaseClass()");
}
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int i)");
}
public int GetNum()
{
return num;
}
}
public class DerivedClass : BaseClass
{
// This constructor will call BaseClass.BaseClass()
public DerivedClass() : base()
{
}
// This constructor will call BaseClass.BaseClass(int i)
public DerivedClass(int i) : base(i)
{
}
static void Main()
{
DerivedClass md = new DerivedClass();
DerivedClass md1 = new DerivedClass(1);
}
}
/*
Output:
in BaseClass()
in BaseClass(int i)
*/
© अजीत कुमार, सर्वाधिकार सुरक्षित।
इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।
No comments:
Post a Comment