Модификатор abstract указывает, что реализация сущности с данным модификатором является неполной или отсутствует.Модификатор abstract может использоваться с классами, методами, свойствами, индексаторами и событиями.
Модификатор abstract в названии класса означает, что класс предназначен только для использования в качестве базового класса для других классов. Члены, помеченные как абстрактные или включенные в абстрактный класс, должны быть реализованы с помощью классов, производных от абстрактных классов. Методы абстрактного класса не должны содержать описания, только название и тип возвращаемых данных или указывать, что метод не возвращает данных.
Нельзя:
- Нельзя создавать экземпляры абстрактного класса;
- Abstractметоды не могут быть privateили virtual;
- Нельзя создавать экземпляры абстрактного класса;
- Абстрактный класс не может быть sealed, поскольку он запрещает наследование класса;
Можно:
- Абстрактные классы могут содержать абстрактные методы и методы доступа;
- Неабстрактный класс, являющийся производным от абстрактного, должен содержать все реализации наследуемых методов и методов доступа.
- Абстрактные методы можно объявить только в абстрактных классах
- Абстрактный метод является неявным виртуальным методом.
Абстрактные методы реализуются через ключевое слово override в наследуемом классе.
abstract class Car
{
abstract public void drive();
abstract public int Wheels { get; set; }
}
class Opel : Car
{
int _wheels;
public override int Wheels
{
get
{
return _wheels ;
}
set {
_wheels = value;
}
}
public override void drive()
{
Console.WriteLine(_wheels);
}
}

