显式实现接口的抽象类方式

时间:2013-02-26 07:21:29

标签: c# interface abstract-class

今天我正在阅读显式实现界面。我开始知道其中一个用途是限制客户端通过类的对象访问接口方法。

我们有什么方法可以使用抽象类创建相同的功能?比如,通过派生类的对象来限制对方法的访问?

1 个答案:

答案 0 :(得分:2)

您可以将方法声明为protected - 然后它只对该类和子类可用(它不在public API上)。但是,如果您愿意,则无​​法override将其public用于派生类 - 您需要new它:

abstract class Foo {
    protected void Bar() {...}
}
class SuperFoo : Foo {
    new public void Bar() { base.Bar(); } // <==== ugly
}