IDerived : IBase 時,子接口成員覆蓋父接口同名成員。實現 IDerived 的類必須至少一個顯式接口成員執行體,否則編譯器無法分辨映射。合理寫法三種:
IBase 用顯式,IDerived 用公有成員IDerived 用顯式,IBase 用公有成員另一情況:類實現多接口,這些接口共享同一父接口,父接口只能實現一次。範例:
interface IControl { void Paint(); }
interface ITextBox : IControl { void SetText(string text); }
interface IListBox : IControl { void SetItems(string[] items); }
class ComboBox : IControl, ITextBox, IListBox {
void IControl.Paint() { ... }
void ITextBox.SetText(string text) { ... }
void IListBox.SetItems(string[] items) { ... }
}
ComboBox 實現三接口,ITextBox/IListBox 實現共享 IControl.Paint 實現。