मैं विशिष्ट इंटरफेस की सूची प्राप्त करने के लिए इंटरफेस की एक कस्टम सूची घोषित करने की कोशिश कर रहा हूं, जिसमें मैं विशिष्ट इंटरफेस की सूची प्राप्त करने के लिए वारिस करना चाहता हूं (मुझे IInterfaceList से अवगत है, यह सिर्फ एक उदाहरण है)। मैं डेल्फी 2007 का उपयोग कर रहा हूं इसलिए मुझे वास्तविक जेनेरिक तक पहुंच नहीं है (मुझे करुणा है)।मैं दो इंटरफेस को कैसे कार्यान्वित कर सकता हूं जिसमें समान नाम वाले विधियां हों?
ICustomInterfaceList = interface
procedure Add(AInterface: IInterface);
function GetFirst: IInterface;
end;
TCustomInterfaceList = class(TInterfacedObject, ICustomInterfaceList)
public
procedure Add(AInterface: IInterface);
function GetFirst: IInterface;
end;
ISpecificInterface = interface(IInterface)
end;
ISpecificInterfaceList = interface(ICustomInterfaceList)
function GetFirst: ISpecificInterface;
end;
TSpecificInterfaceList = class(TCustomInterfaceList, ISpecificInterfaceList)
public
function GetFirst: ISpecificInterface;
end;
TSpecificInterfaceList संकलन नहीं होगा:
E2211 'GetFirst' अलग है की घोषणा घोषणा से इंटरफ़ेस में 'ISpecificInterfaceList'
मुझे लगता है कि
यहाँ एक सरल उदाहरण है मैं सैद्धांतिक रूप से TCustomInterfaceList का उपयोग कर सकता हूं लेकिन जब भी मैं इसका उपयोग करता हूं तो मैं "गेटफास्ट" नहीं डालना चाहता हूं। मेरा लक्ष्य एक विशिष्ट वर्ग होना है जो दोनों को बेस क्लास का व्यवहार प्राप्त होता है और "गेटफास्ट" लपेटता है।
मैं इसे कैसे प्राप्त कर सकता हूं?
धन्यवाद!
संभावित डुप्लिकेट [विभिन्न विधि नामों के लिए इंटरफेस नामों को कैसे मैप करें?] (Http://stackoverflow.com/questions/1390552/how-to-map-interface-names-to-different-method-names) – RFerwerda