Preview:
using System;

// Step 1: Base interface
interface IShape
{
    void Draw();
}

// Step 2: Derived interface inherits from IShape
interface IColorShape : IShape
{
    void FillColor();
}

// Step 3: Implement the derived interface explicitly
class Rectangle : IColorShape
{
    // Explicit implementation of Draw() from IShape
    void IShape.Draw()
    {
        Console.WriteLine("Drawing a Rectangle");
    }

    // Explicit implementation of FillColor() from IColorShape
    void IColorShape.FillColor()
    {
        Console.WriteLine("Filling Rectangle with Blue color");
    }
}

class Program
{
    static void Main()
    {
        // Create object of Rectangle
        Rectangle rect = new Rectangle();

        // To access explicit interface methods, we need to cast to interface
        IShape shape = rect;
        shape.Draw();  // Calls IShape.Draw()

        IColorShape colorShape = rect;
        colorShape.FillColor();  // Calls IColorShape.FillColor()

        Console.ReadLine();
    }
}

downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter