当前位置: 首页 > 编程语言 > C#

实现接口但将成员改为私有共享

时间:2023-04-10 22:53:01 C#

实现接口但将成员改为私有默认情况下,接口的所有成员都是公共的。但是我的接口中有一些属性,我想将它们用作实现我的接口的某些子类的私有成员。这是可以而且已经完成的事情,或者是我在这里的基础。这几天在我的架构中使用的接口比较多,所以我还不是很熟练。接口的要点在于它们提供了其他对象可以用来与对象通信的契约。如果您将在接口中声明为公共的成员更改为私有,那么您就没有履行合同——另一个对象可能需要读取该属性/调用该方法,您必须允许它们。接口永远不能有私有成员,因为接口用于两个对象之间的“接口”。只要您坚持合同结束,您的内部私有成员就无关紧要。继续你的问题,以及你对“子类”这个词的使用,我认为你没有完全理解接口。我知道您可能听过这句话一??百万次,但是,接口描述了对象是什么以及类如何实现它。一个类实现,一个接口,它不会依赖它。因此,您可以根据需要为基类或子类提供接口,但您的问题让我认为您在考虑基类(抽象类),而不是接口。那有意义吗?由于接口没有访问修饰符,如果您仍然希望您的方法在实现该接口的类中是私有的,您可以显式实现该接口。这样你的类方法将是私有的。你必须完全理解什么是接口。事实上,只是描述了外界对阶级成员资格的期望。它不创建成员,它只是通知指定的类具有在公共范围内使用的指定方法。因此,正如您通过界面所见,您只能描述公共成员。另一方面,如果你想声明一些固定的或虚拟的私有成员,你可以使用带有抽象基类的经典继承。在这种情况下,你把所有你想实现的方法都抽象在子类中,并在基类中实现你想定义的方法。希望这会有所帮助..问候该界面仅供公众访问。在内部,对象通过接口引用自身是很奇怪的。如果你想使用强制私有变量,你需要使用抽象类,并将它们标记为受保护的。想一想-你明白这是不可能的:界面就像一个联系人。界面的所有公共字段都是联系人的一部分。所以,你不能将它们隐藏在子类中......如果有人将你的类对象向上转换为接口的类型会发生什么?您可能想更改您的设计——也许将您的界面一分为二?还是接口和抽象类?我们需要了解更多的细节...以上就是C#学习教程的全部内容:实现接口但将成员改为私有共享。如果对你有用,需要进一步了解C#学习教程,希望大家多加关注——本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: