私はC#でこのクラス/インターフェース定義を持っています
public class FooBase {
...
protected bool Bar() { ... }
...
}
public interface IBar {
bool Bar();
}
次に、IBar を実装する FooBase から派生したクラス Foo1 を作成します。
public class Foo1 : FooBase, IBar {
}
コンパイラが継承された保護されたメソッドを、公開されているアクセス可能なインターフェイスの実装として受け取るクラス宣言の魔法はありますか?
もちろん、Foo1 メソッド
bool IBar.Bar()
{
return base.Bar();
}
動作します。ショートカットがあるかどうかだけ知りたいです;)
このメソッドを省略すると、コンパイラ エラーが発生します。Foo1 はインターフェイス メンバ IBar.Bar() を実装していません。FooBase.Bar() が static であるか public でないか、戻り値の型が間違っています。
説明: コードの継承 (クラス階層) と機能の実装 (インターフェース) を分離します。したがって、同じインターフェイスを実装するクラスの場合、共有 (継承) コードにアクセスすると非常に便利です。