为什么私有部分被视为接口?

Uni*_*eak 5 oop interface

我正在阅读Grady Booch的书" 面向对象分析和应用程序设计"第三版.在第94页,Booch说:

我们可以将一个类的接口分为四个部分:

  1. 公共:所有客户都可以访问的声明
  2. 受保护:只能由类本身及其子类访问的声明
  3. 私有:只能由类本身访问的声明
  4. 包:只能由同一包中的类访问的声明

我可以理解为什么保护声明可以被认为是一个接口,因为类的子类也是这个类的客户端.

但我不明白为什么私人声明可以被视为接口.请让我高兴.

Leo*_*kan 0

我又读了一遍,这很简单,只是说接口可以是私有的、受保护的、包的和公共的,之后他告诉你你需要什么以及如何使用它们:)

私有接口的示例:只能在类内部实现的接口!

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)