Interface members are default implicitly public as all methods/properties e.t.c have to be implemented to the classes which inherited from it.
[As all have to be implmented so all are abstract]
An Interface is a reference type and it contains only abstract
members. Interface's members
can be Events, Methods, Properties and Indexers.
But the interface contains only
declaration for its members. Any implementation must be placed in class
that realizes them. The interface can't contain constants, data fields,
constructors, destructors and static members. All the member
declarations inside interface are
implicitly public.
check http://www.codersource.net/csharp_tutorial_interface.html
and http://forums.msdn.microsoft.com/en-US/netfxbcl/thread/55256ccb-3725-41c7-bc58-a7e05b3c0db9/