派生類可重寫基類成員,類似引入接口實現稱重實現。繼承接口實現的類可對接口重實現,要求接口出現於類聲明基類列表。重實現嚴守首次實現規則,派生接口映射不影響重實現映射。範例:
interface IControl { void Paint(); }
class Control : IControl { void IControl.Paint() { ... } }
class MyControl : Control, IControl { public void Paint() { } }
Control 將 IControl.Paint 映射到 Control.IControl.Paint;MyControl 重實現映射到 MyControl.Paint。
重實現時,繼承的公有成員與顯式接口成員參與映射:
interface IMethods { void F(); void G(); void H(); void I(); }
class Base : IMethods {
void IMethods.F() { }
void IMethods.G() { }
public void H() { }
public void I() { }
}
class Derived : Base, IMethods {
public void F() { }
void IMethods.H() { }
}
Derived 映射:F→Derived.F、G→Base.IMethods.G、H→Derived.IMethods.H、I→Base.I。
類重實現接口時,隱式重實現所有父接口。例:IDerived : IBase,D : C, IDerived 重實現 IDerived 同樣重實現 IBase,映射 IBase.F → D.F。