परिचय
C# क्लासेस के साथ मल्टीपल इनहेरिटेंस (एक से अधिक बेस क्लास) का समर्थन नहीं करता। लेकिन एक क्लास एकाधिक इंटरफ़ेस इम्प्लीमेंट करके समान व्यवहार प्राप्त कर सकती है।
उदाहरण: दो इंटरफ़ेस इम्प्लीमेंट करना
using System;
namespace Demo
{
public interface BaseOne
{
void Display();
}
public interface BaseTwo
{
void Display();
}
// दोनों इंटरफ़ेस इम्प्लीमेंट
public class ChildOne : BaseOne, BaseTwo
{
public void Display()
{
Console.WriteLine("Child Class!");
}
}
class Program
{
static void Main(string[] args)
{
ChildOne c = new ChildOne();
c.Display(); // आउटपुट: Child Class!
Console.ReadKey();
}
}
}
मुख्य बिंदु
- एक क्लास कई इंटरफ़ेस इम्प्लीमेंट कर सकती है:
class Child : I1, I2, I3। - सभी इंटरफ़ेस सदस्यों को इम्प्लीमेंट करना अनिवार्य है।
- यदि इंटरफ़ेस में समान सिग्नेचर के मेथड हों, तो एक ही इम्प्लीमेंटेशन दोनों के लिए काम करता है (स्पष्ट इम्प्लीमेंटेशन के साथ अलग भी कर सकते हैं)।
- इंटरफ़ेस में फ़ील्ड नहीं, केवल सिग्नेचर होते हैं।
स्पष्ट इम्प्लीमेंटेशन (Explicit Implementation)
void BaseOne.Display() { Console.WriteLine("BaseOne"); }
void BaseTwo.Display() { Console.WriteLine("BaseTwo"); }
// उपयोग:
BaseOne b1 = new ChildOne(); b1.Display(); // BaseOne
BaseTwo b2 = new ChildOne(); b2.Display(); // BaseTwo