A class implements an interface by defining every required member.

Implementing Interfaces

ImplementingInterfaces.cs
using System;

interface IDiscount
{
    int Apply(int cents);
}

class FlatDiscount : IDiscount
{
    private readonly int discount;

    public FlatDiscount(int discount)
    {
        this.discount = discount;
    }

    public int Apply(int cents)
    {
        return cents - discount;
    }
}

class Program
{
    static void Main()
    {
        int discount = ;
        FlatDiscount rule = new FlatDiscount(discount);
        int finalPrice = rule.Apply(100);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"final={finalPrice}");
    }
}
using System;

interface IDiscount
{
    int Apply(int cents);
}

class FlatDiscount : IDiscount
{
    private readonly int discount;

    public FlatDiscount(int discount)
    {
        this.discount = discount;
    }

    public int Apply(int cents)
    {
        return cents - discount;
    }
}

class Program
{
    static void Main()
    {
        int discount = ;
        FlatDiscount rule = new FlatDiscount(discount);
        int finalPrice = rule.Apply(100);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"final={finalPrice}");
    }
}
using System;

interface IDiscount
{
    int Apply(int cents);
}

class FlatDiscount : IDiscount
{
    private readonly int discount;

    public FlatDiscount(int discount)
    {
        this.discount = discount;
    }

    public int Apply(int cents)
    {
        return cents - discount;
    }
}

class Program
{
    static void Main()
    {
        int discount = ;
        FlatDiscount rule = new FlatDiscount(discount);
        int finalPrice = rule.Apply(100);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"final={finalPrice}");
    }
}
implementation An implementation is the class code that satisfies an interface contract.