1

今日、私は明示的な実装イ​​ンターフェースを読んでいました。その用途の1つは、クラスのオブジェクトを介してインターフェイスメソッドにアクセスするようにクライアントを制限することであることがわかりました。

抽象クラスを使用して同じ機能を作成する方法はありますか?同様に、派生クラスのオブジェクトを介してメソッドへのアクセスを制限しますか?

4

1 に答える 1

2

メソッドを次のように宣言するprotectedと、そのクラスとサブクラスでのみ使用できます ( publicAPI にはありません)。overrideただし、必要に応じて、派生クラスで作成することはできませんpublic-必要にnewなります:

abstract class Foo {
    protected void Bar() {...}
}
class SuperFoo : Foo {
    new public void Bar() { base.Bar(); } // <==== ugly
}
于 2013-02-26T07:32:50.063 に答える