Интерфейс не может заменить класс. Это просто план для класса, который имеет некоторую реализацию, которая соответствует рекомендациям, установленным интерфейсом. Таким образом, у вас в основном будет один интерфейс и более 1 или несколько классов, которые имеют некоторую реализацию для этого интерфейса, например:
public interface IMyInterface{
IList<string> SomeList { get; }
}
public class MyClass : IMyInterface {
public IList<string> SomeList {
get {
return new List<string>(){ "a", "b" , "c" };
}
}
}