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 回答