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