Abstract Classes and Interfaces c# In Hindi

Abstract Classes and Interfaces c# In Hindi

C# प्रोग्रामिंग लैंग्वेज में एब्स्ट्रैक्ट क्लास और इंटरफ़ेस दोनों OOPS (ऊप्स) कांसेप्ट का यूज़ क्लास के उस ऑब्जेक्ट या प्रोटोटाइप को डिफाइन या डिक्लेअर करने में किया जाता है. जिसे उसी क्लास में डिराइव्ड या सबक्लास प्रोटोटाइप ऑब्जेक्ट को कंटिन्यू करना होता है. जबकि ये मौजूदा क्लास में मल्टीप्ल इंडिविजुअल पर्पस को फुलफिल करते हैं, और इनमे में कुछ स्पेशल यूज़ केस डिफ्रेंस होते हैं। एब्स्ट्रैक्ट क्लास और इंटरफ़ेस दोनों ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में क्लास को एब्स्ट्रैक्शन फीचर प्रोवाइड करने के लिए एक एसेंशियल टूल हैं. जिससे की C# प्रोग्रामर बेस क्लास का कम्पलीट इम्प्लीमेंटेशन प्रोवाइड किए बिना क्लास मेथड और उसकी प्रॉपर्टीज़ को डिफाइन कर सकते हैं।

Abstract Classes and Interfaces c# In Hindi

So, let’s take a closer look at both abstract classes and interfaces, both OOPS concepts, in C#.

Abstract Class method in C#.

C# प्रोग्राम में एब्स्ट्रैक्ट क्लास एक ऐसी यूजर डिफाइन डिक्लेअर क्लास होती है, जिसे किसी क्लास प्रोग्राम में डायरेक्ट इंस्टैंशिएट नहीं किया जा सकता है। पैरेंट क्लास में एब्स्ट्रैक्ट क्लास को अन्य क्लास के लिए इनहेरिट कांसेप्ट या फीचर्स प्रोवाइड करने के लिए एक बेस या पैरेंट क्लास के रूप में डिज़ाइन या डिक्लेअर किया जाता है। किसी यूजर डिफाइन एब्स्ट्रैक्ट क्लास में एब्स्ट्रैक्ट क्लास मेथड (एक बिना किसी बॉडी वाले क्लास मेथड होते हैं) और कंक्रीट मेथड (जिसमे बॉडी वाले क्लास मेथड) दोनों तरह से डिफाइन हो सकते हैं।

Important Features of an Abstract Class in C#.

  • Cannot be instantiated – C# प्रोग्रामर डायरेक्ट यूजर डिफाइन एब्स्ट्रैक्ट क्लास के लिए नए क्लास ऑब्जेक्ट क्रिएट नहीं कर सकते है। यह डिराइव्ड या सबक्लास क्लास के लिए एक ब्लूप्रिंट या प्रोटोटाइप की तरह काम करता है।
  • Can be abstract methods – एब्स्ट्रैक्ट क्लास प्रोग्राम में बिना इम्प्लीमेंटेशन वाले यूजर डिफाइन क्लास मेथड टाइप होते हैं. जिन्हें डिराइव्ड या सबक्लास में इम्प्लीमेंट करना होता है।
  • Can be concrete methods – एब्स्ट्रैक्ट क्लास प्रोग्राम में इम्प्लीमेंटेशन वाले रेगुलर यूजर डिफाइन क्लास मेथड होते है. जिन्हें डिराइव्ड या सबक्लास द्वारा इनकी प्रॉपर्टीज को इनहेरिट किया जा सकता है।
  • Can have fields – किसी यूजर डिफाइन क्लास प्रोग्राम में एब्स्ट्रैक्ट क्लास में डिफाइन क्लास फील्ड, प्रॉपर्टीज़ और कंस्ट्रक्टर डिक्लेअर हो सकते हैं।
  • Can have access modifiers – C# प्रोग्रामर क्लास मेथड और उसकी प्रॉपर्टीज़ के लिए पब्लिक, प्रोटेक्टेड, या प्राइवेट क्लास फील्ड मेंबर एक्सेस मॉडिफ़ायर के रूप में यूज़ कर सकते हैं।
  • Can have instance members – किसी यूजर डिफाइन क्लास प्रोग्राम में एब्स्ट्रैक्ट मेथड क्लास में क्लास फ़ील्ड, प्रॉपर्टीज़ और स्टैटिक मेंबर के रूप में भी डिफाइन हो सकते हैं।

Example of an abstract class in a C# program.

using System;

public abstract class Course

{

    // here we define a Abstract class method / must be implemented by derived subclasses

    public abstract void Select();

    // here we define Concrete class method/ that can be inherited by derived subclasses

    public void Selection()

    {

        Console.WriteLine(“\t Select your desire course.\n”);

    }

}

public class Java : Course

{

    // here we Implementing the abstract class method

    public override void Select()

    {

        Console.WriteLine(“Java language selected.”);

    }

}

public class Matlab : Course

{

    // here we Implementing the abstract class method

    public override void Select()

    {

        Console.WriteLine(“Matlab language selected.”);

    }

}

public class Program

{

    static void Main()

    {

        Course java = new Java();

        java.Select(); // Result is – Java language selected.

        java.Selection(); // Result is – Select your desire course.

        Course matlab = new Matlab();

        matlab.Select(); // Result is – Matlab language selected.

        matlab.Selection(); // Result is – Select your desire course.

    }

}

Explaining an abstract class method example.

  • यहाँ ऊपर इस एब्स्ट्रैक्ट क्लास मेथड प्रोग्राम में Course क्लास एक एब्स्ट्रैक्ट डिफाइन है, और इसमें एक एब्स्ट्रैक्ट मेथड (Select(()) और एक कंक्रीट मेथड (Selection()) दोनों डिक्लेअर किये गए होते हैं।
  • जिसमे Java और Matlab दोनों कंक्रीट क्लास हैं, जो की Select(() मेथड को इम्प्लीमेंट करते हैं. लेकिन वे Course से Selection() मेथड को बिना इम्प्लीमेंटेशन दिए इनहेरिट करते हैं।

Interface class method concept in C#.

C# प्रोग्राम में एक इंटरफ़ेस क्लास मेथड और उसकी प्रॉपर्टीज़ का एक ऑब्जेक्ट प्रोटोटाइप को डिक्लेअर या डिफाइन करता है. जिसे किसी यूजर डिफाइन क्लास में  इम्प्लीमेंट करना होता है। इंटरफ़ेस क्लास मेथड एब्स्ट्रैक्ट क्लास के अपोसिट, इंटरफ़ेस में कोई भी क्लास इम्प्लीमेंटेशन प्रोवाइड नहीं हो सकता है। यूजर डिफाइन क्लास इंटरफ़ेस के सभी फील्ड मेंबर इम्प्लीसिटली पब्लिक नेचर में डिफाइन होते हैं, और उन्हें मौजूदा क्लास में इंटरफ़ेस से इनहेरिट होने वाली किसी भी क्लास द्वारा इम्प्लीमेंट किया जाना चाहिए।

Important features of a class interface in C#.

  • Cannot be an implementation – किसी C# प्रोग्राम में क्लास इंटरफ़ेस सिर्फ़ मेथड सिग्नेचर और प्रॉपर्टीज़ को डिक्लेअर या डिफाइन करते हैं. ये प्रोग्राम में कोई स्पेशल इम्प्लीमेंटेशन प्रोवाइड नहीं करते है।
  • Cannot have fields or constructors C# प्रोग्रामर क्लास इंटरफ़ेस में क्लास फ़ील्ड, कंस्ट्रक्टर, या स्टैटिक मेंबर डिफाइन नहीं कर सकते है।
  • Implemented by a class – यूजर डिफाइन क्लास एक इंटरफ़ेस को इम्प्लीमेंट कर सकती हैं, जबकि उन्हें क्लास इंटरफ़ेस में डिक्लेअर डिफाइन किए गए सभी क्लास मेथड और उसके प्रॉपर्टीज़ के लिए इम्प्लीमेंटेशन प्रोवाइड करना होगा।
  • Multiple interface inheritance – एक यूजर डिफाइन क्लास एक साथ कई क्लास इंटरफ़ेस को इम्प्लीमेंट कर सकती है. जिससे की प्रोग्रामर को अधिक फ़्लेक्सिबिलिटी और कंपोज़िशन फीचर्स मिलते है।
  • All members are public – यूजर डिफाइन क्लास प्रोग्राम में इंटरफ़ेस में सभी मेथड और प्रॉपर्टीज़ इम्प्लिसिटली पब्लिक नेचर में डिफाइन होते हैं, और उनमें प्राइवेट या प्रोटेक्टेड जैसे क्लास इंटरफ़ेस एक्सेस मॉडिफ़ायर नहीं हो सकते है।

Example of a class interface in C#.

using System;

public interface ICourse

{

    // here interface Method declaration/without any implementation

    void Select();

    void Selection();

}

public class Csharp : ICourse

{

    // here we Implementing the interface class methods

    public void Select()

    {

        Console.WriteLine(“Csharp course selected.”);

    }

    public void Selection()

    {

        Console.WriteLine(“\t Select your desire programming language.”);

    }

}

public class Ruby : ICourse

{

    // here we Implementing the interface class methods

    public void Select()

    {

        Console.WriteLine(“Ruby course selected.”);

    }

    public void Selection()

    {

        Console.WriteLine(“\t Select your desire programming language.”);

    }

}

public class Program

{

    static void Main()

    {

        ICourse Csharp = new Csharp();

        Csharp.Select(); // Result is – Csharp course selected.

        Csharp.Selection(); // Result is – Select your desire programming language.

        ICourse ruby = new Ruby();

        ruby.Select(); // Result is – Ruby course selected.

        ruby.Selection(); // Result is – Select your desire programming language.

    }

}

Explaining the class interface.

  • यहाँ इस प्रोग्राम में ICourse क्लास इंटरफ़ेस उस कंडीशन को इंडीकेट करता है, जिसे इस इंटरफ़ेस को इम्प्लीमेंट करने वाली क्लास को कंटिन्यू फ़ॉलो करना होगा। यह Select() और Selection() मेथड को रिप्रेजेंट करता है।
  • यहाँ Csharp और Ruby दोनों सबक्लास ICourse इंटरफ़ेस को अप्लाई करती हैं, और Select() और Selection() क्लास मेथड के अपने इम्प्लीमेंटेशन प्रोवाइड करती हैं।

Abstract Class and Interface method Detail Summary.

  • Abstract Class Methods – एब्स्ट्रैक्ट क्लास मेथड यूजर डिफाइन रिलेटेड क्लास के लिए शेयर्ड फीचर्स और फ़ंक्शनैलिटी और कॉमन क्लास बिहेवियर प्रोवाइड या इम्प्लीमेंट करने के लिए एक यूज़फुल ऊप्स क्लास कांसेप्ट है। यूजर डिफाइन एब्स्ट्रैक्ट क्लास में एब्स्ट्रैक्ट मेथड (बिना कोई इम्प्लीमेंटेशन प्रोवाइड के) और कंक्रीट मेथड (यूजर डिफाइन क्लास इम्प्लीमेंटेशन के साथ) दोनों रूप में डिक्लेअर हो सकते हैं। एब्स्ट्रैक्ट क्लास मेथड क्लास फ़ील्ड, कंस्ट्रक्टर, और कई क्लास मेथड इम्प्लीमेंटेशन को सपोर्ट करते हैं।
  • Interface methods – यह यूजर डिफाइन क्लास में एक प्रोटोटाइप नेचर को इंडीकेट करता हैं. जिसे मौजूदा क्लास को इम्प्लीमेंट करना होगा। क्लास में डिफाइन इंटरफ़ेस मेथड इम्प्लीमेंटेशन या फ़ील्ड नहीं प्रोवाइड कर सकते है। यूजर डिफाइन एक क्लास मल्टीप्ल क्लास इंटरफ़ेस को इम्प्लीमेंट कर सकती है. लेकिन क्लास में डिक्लेअर इंटरफ़ेस सिर्फ़ एक एब्स्ट्रैक्ट क्लास की प्रॉपर्टीज से इनहेरिट हो सकती है।

Leave a Reply