Абстракция— это придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы.
Абстрактный класс в объектно-ориентированном программировании — это базовый класс, который не предполагает создания экземпляров через вызов конструктора напрямую, но экземпляр абстрактного класса создается неявно при построении экземпляра производного конкретного класса.
Ключевое слово abstract может использоваться с классами, методами, свойствами, индексаторами и событиями.
Возможности и ограничения абстрактных классов:
- Экземпляр абстрактного класса создать нельзя через вызов конструктора напрямую, но экземпляр абстрактного класса создается неявно при построении экземпляра производного конкретного класса.
- Абстрактные классы могут содержать как абстрактные, так и не абстрактные члены.
- Не абстрактный класс, являющийся производным, от абстрактного, должен содержать фактические реализации всех наследуемых абстрактных членов.
- Абстрактный метод является неявным виртуальным методом.
- Создание абстрактных методов допускается только в абстрактны классах.
- Тело абстрактного метода отсутствует, создание метода просто заканчивается двоеточием, а после сигнатуры ставить фигурные скобки ({}) не нужно
- Реализация предоставляется методом переопределения override, который является членом не абстрактного класса.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// Абстрактный класс. abstract class AbstractClass { public abstract void Method(); } // Конкретный класс. class ConcreteClass : AbstractClass { public override void Method() { Console.WriteLine("Implementation"); } } class Program { static void Main() { AbstractClass instance = new ConcreteClass(); instance.Method(); // Delay. Console.ReadKey(); } } |