Interfaces Can Inherit from Other Interfaces

An interface can inherit from other interfaces.  A class implementing an interface must then implement all members of all interfaces in the inheritance chain.
For example, assume that we have an INameAndMotto interface with Name and Motto properties.
1
2
3
4
5
interface INameAndMotto
{
    string Name { get; set; }
    string Motto { get; set; }
}
Now we can inherit this interface when we define the IMoo interface.
1
2
3
4
5
interface IMoo : INameAndMotto
{
    void Moo();
    List<string> MooLog { get; set; }
}
Now if we specify that the Cow class inherits from IMoo, it must implement all methods in both IMoo andINameAndMotto.
1
2
3
4
5
6
7
8
9
10
11
12
public class Cow : IMoo
{
    public string Name { get; set; }
    public string Motto { get; set; }
 
    public void Moo()
    {
        Console.WriteLine("Moo");
    }
 
    public List<string> MooLog { get; set; }
}