एब्सट्रेक्ट मेथड ऐसा मेथड है जिसका इम्पलीमेंटेशन नहीं होता है। दूसरे शब्दों में, एब्सट्रेक्ट मेथड की बॉडी नहीं होती है।
एब्सट्रेक्ट मेथड का केवल मेथड सिग्नेचर होता है और उसके साथ abstract modifier का उपयोग किया जाता है। उदाहरण के लिए,
public abstract double Add(double number1, double number2);
public abstract double Subtract(double number1, double number2);
public abstract double Multiply(double number1, double number2);
public abstract double Divide(double number1, double number2);
जैसा कि हम जानते हैं कि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के अंतर्गत किसी क्लास के भीतर मेथड होता है, जिस क्लास के भीतर एब्सट्रेक्ट मेथड होता है उस क्लास को एब्सट्रेक्ट क्लास कहा जाता है।
ऐसे क्लास के साथ abstract modifier का उपयोग किया जाता है। यदि किसी क्लास के बॉडी के भीतर कोई भी मेम्बर नहीं है परन्तु क्लास के साथ abstract modifier का उपयोग किया गया हो तो ऐसे क्लास को abstract क्लास ही कहा जाता है। उदाहरण के लिए,
public abstract class AbsClass
{
// It's an abstract class
}
यदि किसी क्लास के भीतर एक भी मेथड एब्सट्रेक्ट मेथड है तो वह क्लास एब्सट्रेक्ट क्लास होता है। उदाहरण के लिए,
public abstract class AbsClass
{
public abstract void Display ();
public void Message ()
{
Console.WriteLine("Non-abstract method");
}
}
किसी क्लास के एब्सट्रेक्ट होने का अभिप्राय यह है कि उस क्लास में कोई ना कोई ऐसा मेथड है जो इंप्लीमेंट नहीं है। कोई भी डाटा एब्स्ट्रेक्ट नहीं होता है, मेथड ही एब्सट्रेक्ट होता है और मेथड के आधार पर कोई क्लास एब्सट्रेक्ट क्लास हो जाता है।
किसी भी एब्सट्रेक्ट क्लास का इंस्टेंस या ऑब्जेक्ट क्रिएट नहीं किया जा सकता है। उदाहरण के लिए निम्नलिखित statement गलत है-
AbsClass obj = new AbsClass();
एब्सट्रेक्ट क्लास के भीतर एब्सट्रेक्ट और नन एब्सट्रेक्ट मेथड दोनों हो सकते हैं। उदाहरण के लिए निम्नलिखित एब्सट्रेक्ट क्लास में एब्सट्रेक्ट और नन एब्सट्रेक्ट दोनों मेथड्स हैं
public abstract class AbsClass
{
public abstract void Display ();
public void Message ()
{
Console.WriteLine("Non-abstract method");
}
}
एब्सट्रेक्ट क्लास के सारे मेथड्स का जब तक इम्पलीमेंटेशन न हो, उस एब्सट्रेक्ट क्लास को कंज्यूम नहीं किया जा सकता है। उदाहरण के लिए ऊपर के AbsClass क्लास के एब्सट्रेक्ट मेथड Display को इम्पलीमेंट निम्नलिखित कोड में Child क्लास, जो AbsClass को इन्हेरीट करता है, में किया गया है-
public abstract class Child : AbsClass
{
public abstract void Display ()
{
Console.WriteLine("Display method is implemented.");
}
}
एब्सट्रेक्ट क्लास को कंज्यूम करने के लिए उसके चाइल्ड क्लास को एब्सट्रेक्ट क्लास के सारे एब्सट्रेक्ट मेथड्स को इम्पलीमेंट करना अनिवार्य है। यदि चाइल्ड क्लास में एक भी मेथड एब्सट्रेक्ट है तो उस चाइल्ड क्लास को कंज्यूम नहीं किया जा सकता है।
© अजीत कुमार, सर्वाधिकार सुरक्षित।
इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।
No comments:
Post a Comment