Her sınıfın bir dizi ortak özelliğe ve yalnızca bu sınıfa özgü bir dizi özelliğe sahip olmasını istediğim bir dizi sınıf ve karşılık gelen arabirimleri uygulıyorum. Yani, çizgisinde arayüzleri tanımlayan düşünüyorum:Çoklu Arayüz Kalıtım
interface ICommon {...} // Members common to all widgets
interface IWidget1 {...} // specialized members of widget type 1
interface IWidget2 {...} // specialized members of widget type 2
Ben arayüzlerinde devralma sahip arasında seçim vermeye çalışan veya sınıfta duyuyorum. Yani, özellikle, bunu böyle yapın ya edebilirsiniz:
interface IWidget1 : ICommon {...}
interface IWidget2 : ICommon {...}
class Widget1 : IWidget1 {...}
class Widget2 : IWidget2 {...}
... ya böyle ...
class Widget1: ICommon, IWidget1 {...}
class Widget2: ICommon, IWidget2 {...}
Öyle ya da böyle gitmek için herhangi bir zorlayıcı sebep var mı
?Güncelleme: Eğer sınıfların COM-görünür olması gerekiyorsa cevabı etkiler mi?
Doğru, evet türetmemelisiniz. Tüm Widget türleri ICommon uygulamanız GEREKİR. Bunun nedeni, her widget'daki uygulamalarını uygulamaktır. –
O zaman kesinlikle IWidget1'in ICommon'dan türetilmiş olması gerekir. – Josh