मैं के रूप मेंएक सार आधार वर्ग में अनुबंध को आंशिक रूप से कार्यान्वित कैसे करें?
public interface IX
{
void MethodA();
void MethodB();
}
मैं इंटरफ़ेस MethodA और MethodB में दो विधि अनुबंध है इस प्रकार एक इंटरफ़ेस होता है। मैं कक्षाओं के सेट को परिभाषित कर दूंगा जो उपरोक्त इंटरफ़ेस को लागू करेंगे। इन दो विधियों में से MethodAA इंटरफ़ेस को लागू करने वाले सभी प्रकारों के लिए आम है। मैं एक सार वर्ग को
public abstract class XBase:IX
{
public void MethodA()
{
// Common behaviour implementation
}
public abstract void MethodB();
}
और इस वर्ग को उपरोक्त इंटरफ़ेस को लागू करने के लिए आवश्यक सभी प्रकारों को प्राप्त कर सकता हूं। यह काम करता हैं।
लेकिन यहां अमूर्त वर्ग में मैं 'सार्वजनिक सार शून्य विधि) ('; 'जोड़ता हूं। यह विधि बी अनुबंध की पुनरावृत्ति की तरह दिखता है।
कक्षा # सारणी इंटरफ़ेस कार्यान्वयन की अनुमति क्यों नहीं देती है? उपरोक्त इंटरफ़ेस में केवल दो विधियां हैं। मान लीजिए कि एक इंटरफ़ेस में 10 विधियां हैं और 5 सामान्य कार्यक्षमता हैं और 5 नहीं हैं, हमें 5 विधियों को जोड़ने के लिए मजबूर होना जरूरी है जो अमूर्त वर्ग में आम नहीं हैं?
बस उत्सुक क्यों है कि आप एक अमूर्त वर्ग पर एक इंटरफ़ेस को कार्यान्वित करना चाहते हैं? लगता है कि एक-एक कार्य करता है, जैसे रिश्ते। – CkH
@ कैमरॉन: असल में मुझे लगता है कि यह एक बहुत अच्छा दृष्टिकोण है। आप सैद्धांतिक रूप से कई अलग-अलग सार आधार वर्गों को प्राप्त कर सकते हैं जो सभी कार्यान्वयन के लिए कुछ मौलिक रूप से अलग दृष्टिकोण के माध्यम से एक ही इंटरफ़ेस को लागू करते हैं। –