Переменная интерфейсного типа в C#
Переменная может иметь тип интерфейса, а значение - объект класса-реализации. Так код опирается на контракт, а не на конкретный класс.
Через интерфейс доступны только члены контракта,
даже если у класса есть и другие методы.
Запишем переменную типа IGreeter:
IGreeter greeter = new User();
greeter.Greet();
interface IGreeter
{
void Greet();
}
class User : IGreeter
{
public void Greet()
{
Console.WriteLine("hello");
}
}
Создайте объект ConsolePrinter,
сохраните его в переменную типа IPrinter
и выведите одну строку текста через контракт.