Несколько интерфейсов в C#
Класс в C# может иметь только одного родителя-класса, но любое количество интерфейсов. Имена перечисляют через запятую после двоеточия.
Сюжет похож на несколько баз в C++, но здесь дополнительные контракты - именно интерфейсы, а не классы. Запишем спрайт с двумя обязанностями:
interface IDrawable
{
void Draw();
}
interface IMovable
{
void Move();
}
class Sprite : IDrawable, IMovable
{
public void Draw()
{
Console.WriteLine("draw");
}
public void Move()
{
Console.WriteLine("move");
}
}
Каждый интерфейс добавляет свой набор обязательных членов. Класс должен реализовать их все, иначе объявление останется неполным.
Сделайте интерфейс IReadable с методом
Read и интерфейс IWritable с методом
Write.
Сделайте класс Journal, который будет
реализовывать оба интерфейса: и IReadable,
и IWritable.
Сделайте интерфейс IFigure с методами
Area и Perimeter.
Сделайте интерфейс IQuadrilateral со свойствами
четырех сторон.
Сделайте класс Square, который также
будет реализовывать два интерфейса: и IFigure,
и IQuadrilateral.