I'm confused about default access modifier of C# interface members [duplicate]
This question already has answers here : Why are C# interface methods not declared abstract or virtual? (6 answers) Closed 6 years ago . What is the access modifier of interface methods? It should be public or protected because you have access to them when you implement them (which makes sense). It also should be abstract because they don't have implementation. But lately I've been reading a book called CLR Via C# and the chapter about interfaces says the following The CLR requires that interface methods be marked as virtual . If you do not explicitly mark the method as virtual in your source