Модификатор 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); } }