今天我正在阅读显式实现界面。我开始知道其中一个用途是限制客户端通过类的对象访问接口方法。
我们有什么方法可以使用抽象类创建相同的功能?比如,通过派生类的对象来限制对方法的访问?
答案 0 :(得分:2)
您可以将方法声明为protected
- 然后它只对该类和子类可用(它不在public
API上)。但是,如果您愿意,则无法override
将其public
用于派生类 - 您需要new
它:
abstract class Foo {
protected void Bar() {...}
}
class SuperFoo : Foo {
new public void Bar() { base.Bar(); } // <==== ugly
}