logo
Лекции по ая

Абстрактные классы

Методы класса могут быть объявлены как абстрактные. Это означает, что в этом классе нет реализации этих методов. Абстрактные методы пишутся с модификатором abstract. Класс, в котором есть хотя бы один абстрактный метод, называется абстрактным (в таком классе могу быть и обычные методы). Нельзя создавать экземпляры абстрактного класса — такой класс может использоваться только в качестве базового класса для других классов. Для потомка такого класса есть две возможности — или он реализует все абстрактные методы базового класса (и в этом случае для такого класса-потомка мы сможем создавать его экземпляры), или реализует не все абстрактные методы базового класса (в этом случае он является тоже абстрактным классом, и единственная возможность его использования — это производить от него классы потомки). Рассмотрим пример:

abstract class Ferst

{

public abstract void Method1();

public abstract void Method2(string str);

}

class Second : Ferst

{

public override void Method1()

{

Console.WriteLine("Ferst Method");

}

public override void Method2(string str)

{

Console.WriteLine(str);

}

}

class Program

{

static void Main()

{

Second s = new Second();

s.Method1();

s.Method2("Hello");

Console.WriteLine();

}

}

В приведенном примере создан абстрактный класс Ferst, с двумя абстрактными методами. Класс Second наследуется от абстрактного класса Ferst и реализует определенные в абстрактном классе методы.