An Interface is similar to an Abstract class and it also cannot be instantiated.
• Cannot be instantiated i.e. object cannot be created using the new keyword.
• Can contain only declaration of Members and not definition.
• Members are simply declared and are defined in the classes deriving the Interface.
• Members are defined without using the override keyword.
• Cannot contain Access modifiers i.e. Members cannot be public, private, etc.
• The derived member can only be public.
• Does support Multiple Inheritance.
Example:
public interface A
{
void Fun1();
void Fun2();
}
public class B : A
{
public void Fun1()
{
}
//Error: 'B' does not implement interface member 'A.Fun2()'
//'B.Fun2()' cannot implement an interface member because it is not public
private void Fun2()
{
}
}
public class C
{
public static void Fun3()
{
//Compiler Error: Cannot create an instance of the abstract class or interface 'A'
A a = new A();
//Valid
B b = new B();
B b = new B();
b.Fun1();
//Invalid
b.Fun2();
}
}