Base Class and Derived Class c# In Hindi
C# प्रोग्रामिंग में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) में इनहेरिटेंस एक ऐसा कांसेप्ट या फीचर्स है, जिसमें एक मैन सुपर या रुट क्लास से अन्य डिराइव्ड क्लास दूसरी क्लास बेस क्लास की फील्ड प्रॉपर्टीज़ और मेथड बिहेवियर क्लास फील्ड्स और मेथड्स को सबक्लास में इनहेरिट कर उसके फीचर्स और फंक्शन को कॉन्टैन करती है। इनहेरिटेंस फीचर्स से C# प्रोग्रामर मौजूदा क्लास के आधार पर एक नई सबक्लास या मल्टीप्ल डिराइव्ड क्लास क्रिएट कर सकते हैं. जिससे की मौजूदा प्रोग्राम सोर्स कोड रीयूज़ कांसेप्ट इनक्रीस होता है, और इससे प्रोग्राम सोर्स कोड रिडंडेंसी प्रोसेस कम होती है।

So, let’s get to know Base Class and Derived Class better in the C# programming.
Important Features of Base Class and Derived Class.
- Base Class (also known as parent class or superclass) – C# प्रोग्राम में बेस क्लास एक ऐसी क्लास है. जो क्लास प्रोग्राम में डिराइव्ड क्लास सबक्लास दूसरी क्लास के साथ अपनी फंक्शन और फीचर्स शेयर करने के लिए एक कॉमन फंक्शनैलिटी प्रोवाइड करता है।
- Derived class (known as child class) – C# प्रोग्राम में डिराइव्ड क्लास सबक्लास एक ऐसी क्लास है. जो बेस या रुट पैरेंट क्लास की फंक्शनैलिटी कांसेप्ट और प्रॉपर्टीज को अन्य क्लास में इनहेरिट करती है, और अधिक प्रोग्राम क्लास फंक्शन और फीचर्स को ऐड करने के लिए उसे डिराइव्ड क्लास में एक्सटेंड या ओवरराइड कर सकती है।
Creating a Base Class and a Derived Class in a C# Program.
तो चलिए C# प्रोग्रामिंग में एक बेस क्लास और डिराइव्ड क्लास से इनहेरिटेंस प्रॉपर्टीज मेथड कॉन्सेप्ट को एक सिंपल एक्साम्प्ल से बेहतर जाने।
Course (base class) and CSharpCourse (derived class) example.
using System;
// here we create course as Parent class
public class Course
{
// here we define course class Fields
public string CourseName;
public int Duration;
// here we create a course class Constructor
public Course(string courseName, int duration)
{
CourseName = courseName;
Duration = duration;
}
// here we define a course Method
public void ShowCourse()
{
Console.WriteLine($”Course Name – {CourseName}, Duration – {Duration} months”);
}
}
// here we create a Derived class which inherit from course class
public class CSharpCourse : Course
{
// here we define a new field for C# class
public string Level;
// here we create a Constructor
public CSharpCourse(string courseName, int duration, string level)
: base(courseName, duration)
{
Level = level;
}
// here we define a Method specific to CSharpCourse class
public void ShowLevel()
{
Console.WriteLine($”Level – {Level}”);
}
// here we Hiding parent method
public new void ShowCourse()
{
Console.WriteLine($”\n Course – {CourseName} \n Duration – {Duration} months”);
}
}
// here we define a Main class
class Program
{
static void Main(string[] args)
{
// here we create a Parent class object
Course course = new Course(“C# Programming Language”, 1);
Console.WriteLine(“| Course Information |”);
course.ShowCourse();
Console.WriteLine();
// here we reate a Derived class object
CSharpCourse csharp = new CSharpCourse(“C# Programming”, 2, “Expert Level”);
Console.WriteLine(“| C# Course info |”);
csharp.ShowCourse();
csharp.ShowLevel();
}
}
Course (base class) and CSharpCourse (derived class) in the explanation.
- यहाँ इस प्रोग्राम में Course एक बेस क्लास है। इसमें कॉमन प्रॉपर्टीज़ (CourseName, Duration) और मेथड्स ShowCourse हैं. जो सभी कोर्स क्लास के द्वारा शेयर किए जाते हैं।
- CSharpCourse एक डेरिव्ड क्लास है। यह: base (courseName, duration, level) सिंटैक्स का इस्तेमाल करके कोर्स क्लास क्लास से प्रॉपर्टीज को इनहेरिट करता है। यह अपनी खुद की यूनिक प्रॉपर्टी (ShowCourse) और मेथड (ShowLevel) को भी ऐड करता है।
- इसके अलावा, यह new कीवर्ड का यूज़ करके कोर्स के लिए एक स्पेशलाइज़्ड इम्प्लीमेंटेशन प्रोवाइड करने के लिए course मेथड को ओवरराइड करता है. (यह बेस क्लास मेथड को छिपा देता है)।
Using Base and Derived Classes in C#.
तो चलिए, C# प्रोग्राम में देखें कि हम इन क्लास के ऑब्जेक्ट को कैसे क्रिएट कर सकते हैं, और उनके क्लास मेथड को कैसे यूज़ कर सकते हैं।
Using Base and Derived Classes example.
class Program
{
static void Main()
{
// here we Creating an object of the base class
Course course = new Course(“C# Programming Language”, 1);
course.ShowCourse();
// here we Creating an object of the derived class
CSharpCourse csharp = new CSharpCourse(“C# Programming”, 2, “Advanced”);
csharp.ShowCourse();
csharp.ShowLevel();
// here The derived class can also be referred to as a base class object
Course csharpAsCourse = new CSharpCourse(“ASP.NET with C#”, 3, “Intermediate Level”);
csharpAsCourse.ShowCourse();
}
}
Explaining Base and Derived Classes.
Creating objects of the Course class.
- यहाँ Course, एक बेस क्लास Course क्लास का एक इंस्टेंस है। हम इसके ShowCourse मेथड को कॉल कर सकते हैं।
Creating objects of the CSharpCourse class.
- यहाँ CSharpCourse डिराइव्ड क्लास CSharpCourse का एक इंस्टेंस मेथड है, जिसमें इनहेरिटेड और नए दोनों मेथड हैं। हम ShowCourse() और ShowLevel() के लिए खास दोनों को कॉल कर सकते हैं।
Using a base class reference for a derived class object.
आप Course टाइप के वेरिएबल को CSharpCourse क्लास ऑब्जेक्ट असाइन कर सकते हैं। यह एक कम्पलीट पॉलीमॉर्फिज्म का उदाहरण है। जब आप CourseAsCSharpCourse ऑब्जेक्ट पर ShowCourse कॉल करते हैं, तो रनटाइम मेथड बाइंडिंग (डायनामिक डिस्पैच) के कारण CSharpCourse क्लास का मेथड इनवोक हो जाता है।
Inheritance Mechanism in C# Programming.
- Fields and Properties – C# प्रोग्राम में क्रिएटेड डिराइव्ड क्लास अपने आप बेस या रुट पैरेंट क्लास के सभी फील्ड्स और प्रॉपर्टीज़ को डिराइव्ड क्लास में इनहेरिट कर लेता है। लेकिन, यह बेस क्लास के प्राइवेट क्लास मेंबर्स फील्ड को एक्सेस नहीं कर सकता है।
- Methods – किसी क्लास प्रोग्राम में डिराइव्ड क्लास बेस क्लास के पब्लिक और प्रोटेक्टेड क्लास मेथड्स को डायरेक्ट एक्सेस कर सकता है। इसके साथ, डिराइव्ड क्लास बेस क्लास मेथड्स पॉलीमॉर्फिज्म फीचर्स कांसेप्ट को ओवरराइड या हाइड कर सकता है।
Method Overriding in C#.
क्लास प्रोग्राम में डिफाइन डिराइव्ड क्लास किसी क्लास मेथड का डिफ़ॉल्ट बिहेवियर मॉडिफाई करने के लिए, यदि बेस क्लास मेथड को वर्चुअल या एब्स्ट्रैक्ट के तौर पर मार्क या इंडीकेट किया गया है. तो आप इसमें ओवरराइड कीवर्ड का यूज़ कर इसे अप्लाई कर सकते हैं।
Method Overriding Example in a C# Program.
using System;
// here we define a Base class with a virtual method
public class Course
{
public string CourseName;
public Course(string courseName)
{
CourseName = courseName;
}
// here Virtual method allows us to overriding in derived classes
public virtual void ShowDetails()
{
Console.WriteLine($”{CourseName} is a programming course.”);
}
}
// here Derived class that overrides the base class method
public class CSharpCourse : Course
{
public CSharpCourse(string courseName) : base(courseName) { }
public override void ShowDetails()
{
Console.WriteLine($”{CourseName}, programming course.”);
}
}
public class Program
{
static void Main()
{
Course course = new Course(“C# Programming Language”);
course.ShowDetails();
CSharpCourse csharp = new CSharpCourse(“Expert Level of C#”);
csharp.ShowDetails();
}
}
Here in this Method Overriding example.
- यहाँ C# प्रोग्राम में Course क्लास में ShowDetails एक क्लास मेथड को वर्चुअल के तौर पर मार्क या इंडीकेट किया गया है, इसका मतलब है कि इसे डिराइव्ड क्लास द्वारा ओवरराइड किया जा सकता है।
- CSharpCourse क्लास, CSharpCourse के लिए एक खास इम्प्लीमेंटेशन प्रोवाइड करने के लिए ShowDetails को ओवरराइड करता है।
Use of Base Class Constructor in Derived Classes in C#.
जब आप डिराइव्ड क्लास का एक इंस्टेंस क्रिएट करते हैं, तो आप बेस क्लास के मेंबर्स को इनिशियलाइज़ करने के लिए बेस कीवर्ड का यूज़ करके बेस क्लास के कंस्ट्रक्टर को कॉल कर सकते हैं।
Example of calling the base class constructor.
using System;
public class Course
{
public string CourseName;
// here we creating a Base class constructor
public Course(string courseName)
{
CourseName = courseName;
}
}
public class CSharpCourse : Course
{
public CSharpCourse(string courseName) : base(courseName) // here it Calling the base class with constructor
{
}
}
public class Program
{
static void Main()
{
CSharpCourse csharp = new CSharpCourse(“C# Programming Language”);
Console.WriteLine(csharp.CourseName); // Result is – C# Programming Language
}
}
Here’s the Base Class Constructor in Derived Classes example.
- यहां, CSharpCourse क्लास, बेस क्लास में courseName फ़ील्ड को इनिशियलाइज़ करने के लिए base(courseName) का यूज़ करके Course क्लास के कंस्ट्रक्टर को कॉल करता है।
Access modifier concept in class inheritance.
- Private members – यदि किसी रुट पैरेंट या बेस क्लास में प्राइवेट फील्ड मेंबर डिफाइन किए गए है. तो डिराइव्ड क्लास द्वारा ये एक्सेस नहीं किए जा सकते है।
- Protected members – किसी यूजर डिफाइन बेस क्लास में डिक्लेअर प्रोटेक्टेड क्लास मेंबर डिराइव्ड क्लास में डायरेक्ट एक्सेस किए जा सकते हैं।
- Public and internal members – ये डिराइव्ड क्लास द्वारा सबक्लास में इनहेरिट किए जाते हैं, और इन्हे जरूरत पड़ने पर क्लास में ऐसे ही एक्सेस किया जा सकता है।
Example of protected class member access.
using System;
public class Course
{
protected string courseName; // here we define a Protected class member
public Course(string courseName)
{
this.courseName = courseName;
}
}
public class CSharpCourse : Course
{
public CSharpCourse(string courseName) : base(courseName) { }
public void ShowCourseName()
{
Console.WriteLine($”The course name is, {courseName}.”);
}
}
public class Program
{
static void Main()
{
CSharpCourse csharp = new CSharpCourse(“C# Programming”);
csharp.ShowCourseName(); // Result is – The course name is, C# Programming.
}
}
Here’s an example of protected class member access.
- यहाँ Course क्लास में courseName फ़ील्ड प्रोटेक्टेड डिक्लेअर किए गए है, इसलिए CSharpCourse क्लास इसे डायरेक्ट एक्सेस कर सकती है।
Base Class and Derived Class Summary in C#.
- Base Class – किसी यूजर डिफाइन क्लास में कॉमन फ़ंक्शनैलिटी जैसे, क्लास फ़ील्ड, प्रॉपर्टी, मेथड, को प्रोवाइड करता है. जो डिराइव्ड क्लास से प्रॉपर्टीज और मेथड को इनहेरिट करती है।
- Derived Class – डिराइव्ड क्लास बेस क्लास की प्रॉपर्टीज फंक्शन और फीचर्स से इनहेरिट होती है, जो की पैरेंट या बेस क्लास की फ़ंक्शनैलिटी को अडॉप्ट करता है. और उसे आगे उसे इनक्रीस या मॉडिफ़ाई करता है।
- Access Modifiers – C# प्रोग्राम में डिक्लेअर बेस क्लास फील्ड मेंबर तक पब्लिक, प्रोटेक्टेड और प्राइवेट कंट्रोल एक्सेस को मैनेज और कण्ट्रोल करने में हेल्प करते है।
- Method Overriding – C# प्रोग्राम में डिक्लेअर डिराइव्ड क्लास, ओवरराइड कीवर्ड मेथड का यूज़ करके बेस क्लास मेथड को ओवरराइड कर सकते हैं। Constructor – यूजर डिफाइन डेरिव्ड क्लास में, बेस कीवर्ड का यूज़ करके बेस क्लास कंस्ट्रक्टर को कॉल कर सकते हैं।
