Abstract (довідник по c #), microsoft docs

В цій статті

Модифікатор abstract вказує, що змінний елемент має відсутню або неповну реалізацію. Модифікатор abstract можна використовувати з класами, методами, властивостями, індексаторами і подіями. Модифікатор abstract у визначенні класу дозволяє вказати, що клас може бути тільки базовим класом для інших класів. Члени, помічені як абстрактні або включені в абстрактний клас, повинні бути реалізовані класами, похідними від абстрактного класу.

У цьому прикладі клас Square повинен забезпечувати реалізацію Area. оскільки є похідним від класу ShapesClass.

Абстрактні класи надають такі можливості:

Створювати екземпляри абстрактного класу не можна.

Абстрактний клас може містити абстрактні методи і методи доступу.

Змінити абстрактний клас з модифікатором sealed не можна, оскільки два цих модифікатора мають взаємовиключні значення. Модифікатор sealed забороняє успадкування класу, в той час як модифікатор abstract вказує, що клас повинен мати похідні класи.

Неабстрактне клас, похідний від абстрактного класу, повинен включати фактичні реалізації всіх успадкованих абстрактних методів і методів доступу.

Абстрактні методи надають такі можливості:

Абстрактний метод неявно є віртуальний метод.

Реалізація надається методом перевизначення override. який є членом неабстрактне класу.

Використання модифікатора abstract в статичному властивості є неприпустимим.

Абстрактний клас повинен надавати реалізацію для всіх членів інтерфейсу.

Абстрактний клас, який реалізує інтерфейс, може зіставляти методи інтерфейсу з абстрактними методами. приклад:

У наступному прикладі клас DerivedClass є похідним від абстрактного класу BaseClass. Абстрактний клас містить абстрактний метод, AbstractMethod. і два абстрактних властивості, X і Y.

У попередньому прикладі при спробі створити екземпляр абстрактного класу за допомогою оператора виду:

видається повідомлення про помилку, яке вказує, що компілятор не може створити екземпляр абстрактного класу BaseClass.

Специфікація мови C #

Додаткові відомості див. У специфікації мови C #. Специфікація мови є розпорядчим джерелом інформації про синтаксис і використанні мови C #.