我正在阅读Grady Booch的书" 面向对象分析和应用程序设计"第三版.在第94页,Booch说:
我们可以将一个类的接口分为四个部分:
- 公共:所有客户都可以访问的声明
- 受保护:只能由类本身及其子类访问的声明
- 私有:只能由类本身访问的声明
- 包:只能由同一包中的类访问的声明
我可以理解为什么保护声明可以被认为是一个接口,因为类的子类也是这个类的客户端.
但我不明白为什么私人声明可以被视为接口.请让我高兴.
我又读了一遍,这很简单,只是说接口可以是私有的、受保护的、包的和公共的,之后他告诉你你需要什么以及如何使用它们:)
私有接口的示例:只能在类内部实现的接口!
public class MyClass
{
private interface IFoo
{
int MyProp { get; }
}
private class Foo : IFoo
{
int _mamboNumber = 5;
public int MyProp { get { return _mamboNumber; } set { _mamboNumber = value; } }
}
private class FooSec : IFoo
{
int _mamboNumber = 10;
public int MyProp { get { return _mamboNumber; } set { _mamboNumber = value; } }
}
public static void Main(string[] args)
{
IFoo foo = new Foo();
int fooProp = foo.MyProp; // return 5
IFoo foo2 = new FooSec();
int foo2Prop = foo2.MyProp; // return 10
}
}
Run Code Online (Sandbox Code Playgroud)