मैं कक्षाओं और संबंधित इंटरफेस का एक सेट कार्यान्वित कर रहा हूं जहां मैं चाहता हूं कि प्रत्येक वर्ग में सामान्य गुणों का एक सेट हो और विशेष गुणों का एक सेट जो केवल उस वर्ग के लिए विशिष्ट हों। तो, मैं की तर्ज पर इंटरफेस को परिभाषित करने पर विचार कर रहा हूँ:एकाधिक इंटरफ़ेस विरासत
interface ICommon {...} // Members common to all widgets
interface IWidget1 {...} // specialized members of widget type 1
interface IWidget2 {...} // specialized members of widget type 2
मैं या इंटरफेस में भाग होने के बीच चयन करने की कोशिश कर रहा हूँ, कक्षा में। तो, विशेष रूप से, मैं या तो इसे इस तरह कर सकते हैं:
interface IWidget1 : ICommon {...}
interface IWidget2 : ICommon {...}
class Widget1 : IWidget1 {...}
class Widget2 : IWidget2 {...}
... या इस तरह ...
class Widget1: ICommon, IWidget1 {...}
class Widget2: ICommon, IWidget2 {...}
कोई सम्मोहक एक ही रास्ता या अन्य जाने के लिए कारण है?
अपडेट: क्या कक्षाएं COM-view होने पर उत्तर को प्रभावित करती हैं?
से IWidgetX इंटरफेस को बेहतर नहीं प्राप्त करेंगे, ठीक है, हाँ। सभी विजेट प्रकारों को आईसीओएमओएन लागू करना होगा। प्रत्येक के लिए प्रत्येक विजेट में इसके कार्यान्वयन को लागू करने के लिए यह कारण है। –
फिर हाँ आप निश्चित रूप से IWidget1 आईसीओएमओएन से प्राप्त होना चाहिए। – Josh