सी # में आप अभी भी विधियों को परिभाषित करते हैं, लेकिन आप शरीर प्रदान नहीं करते हैं और आप इसे सार के रूप में चिह्नित करते हैं। इसलिए जैसा:
interface IFoo
{
void Bar();
}
abstract class Foo : IFoo
{
public abstract void Bar();
}
या दूसरे शब्दों में कहें रहे हैं: करने की जरूरत नहीं आप करते "लागू" यह (जो सार वर्गों पर एक भयानक सीमा होगा); हालांकि, सी # में, आप को कंपाइलर बताना है कि आप जानबूझकर कंक्रीट उप-वर्गों में हिरण पारित कर रहे हैं - और कोड की उपरोक्त पंक्ति से पता चलता है कि ऐसा कैसे करें।
[टिप्पणियां और डाउनवॉट्स शिकायत करते हैं कि यह प्रश्न का उत्तर नहीं है, इस बिंदु को याद कर रहे हैं। कोई व्यक्ति इस कंपाइलर त्रुटि को प्राप्त करने के बाद, स्टैकओवरफ्लो में आ रहा है, लेकिन एक अमूर्त वर्ग जिसमें एक कार्यान्वयन की आपूर्ति करने की गलती होगी, एक अच्छे समाधान के बिना फंस गए हैं - रनटाइम अपवादों को फेंकने वाले कार्यान्वयन विधियों को लिखना होगा, एक भयानक काम- चारों ओर - जब तक वे उपरोक्त जानकारी नहीं है। क्या यह अच्छा है या बुरा है कि सी # इस मुखरता की आवश्यकता है stackoverflow के दायरे से बाहर है, और सवाल है और न ही इस उत्तर के लिए प्रासंगिक नहीं।]
हाहा। मैंने एक बात लिखी और फिर इसे बदलने का फैसला किया। माफ़ कीजिये। :) – Joel
स्वीकार्य उत्तर पर डाउनवॉट्स और टिप्पणियों के आधार पर, मेरा मानना है कि डाउनवॉट्स के सवाल के कारण आते हैं। ओपी पूछता है "यह इस तरह क्यों है", जो स्टैक ओवरफ्लो के दायरे से बाहर होगा। यह खुद का सामना करने के बाद, सवाल यह है कि "क्या मुझे कुछ याद आ रहा है? क्या मुझे वास्तव में कार्यान्वयन की आपूर्ति करनी है? क्या इससे यह एक अमूर्त वर्ग नहीं है?" जिस पर जवाब है "नहीं, आपको * कार्यान्वयन * (जो एक अमूर्त वर्ग के उद्देश्य का उल्लंघन नहीं करेगा) की आपूर्ति करने की ज़रूरत नहीं है, लेकिन यह है कि आपको अपनी स्थिति को काम करने के लिए क्या करना है।" – ToolmakerSteve