What Felix said is true.
In more detail, an interface defines a minimal set of functions that must exist on any object defined as an implementation of the interface. This provides a βcommonβ set of functionality for all implementations of an interface, so you know that if an object implements an interface, you can call it X, Y, and Z. For example, because something is IDisposable, for example, it does not mean that ALL the object can do. In fact, this would make the interfaces pretty pointless if they also defined maximum functionality. This is all you need if and when you work with an object as an implementation of an interface; if all you need is IDisposable, you only need to call Dispose (), no matter what additional members may have a particular implementation of IDisposable.
Back to your example, the interface that defines the property indicates that it should have open access to accessories. He does not and cannot say that he cannot have access to the public set; it's just the same. The kit accessory may be public, internal, secure, closed or non-existent; which interface consumers will expect, and thus what interface developers will need, is a get accessor.
source share