Будинки Розвиток Що таке базовий клас - .net? - визначення з техопедії

Що таке базовий клас - .net? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає базовий клас - .NET?

Базовий клас у контексті C # - це клас, який використовується для створення або отримання інших класів. Класи, похідні від базового класу, називаються дочірніми класами, підкласами або похідними класами. Базовий клас не успадковує жоден інший клас і вважається батьківським похідним класом.


Базовий клас утворює засоби, за допомогою яких відбувається успадкування шляхом деривації. Клас, похідний від базового класу, успадковує як дані, так і поведінку. Наприклад, транспортний засіб може бути базовим класом, з якого можна отримати похідні автомобілі та автобуси класів. І автомобіль, і автобус - це транспортні засоби, і кожен з них представляє власні спеціалізації базового класу.


Як і в Java, але на відміну від C ++, C # не підтримує кілька успадкованих класів. C # відрізняється від Java тим, що явно позначає віртуальний модифікатор для всіх віртуальних членів.


Базовий клас також відомий як батьківський клас або надклас.

Техопедія пояснює базовий клас - .NET

Базовий клас допомагає створити спеціалізований клас, який може повторно використовувати код, який неявно отриманий з базового класу (крім конструкторів та деструкторів), та розширити функціональність базового класу шляхом додавання або переопределення членів, що відповідають похідному класу у похідному класі. У C # події оголошуються в базовому класі, який можна підняти з похідних класів. Загальні класи, які використовуються для інкапсуляції операцій, не характерних для конкретного типу даних, служать базовими класами, забезпечуючи загальну поведінку для досягнення гнучкості та повторного використання коду.


Ключові властивості базового класу в C #:

  • Доступ до членів базового класу (конструктор, метод екземпляра або доступ до властивостей екземпляра) отримують доступ до похідного класу за допомогою ключового слова "base".
  • Базові класи автоматично інстанціюються перед похідними класами.
  • Отриманий клас може спілкуватися з базовим класом під час інстанції, викликаючи конструктор базового класу зі списком відповідних параметрів.
  • Доступ до членів базового класу можна отримати з похідного класу за допомогою явного переліку.
  • Оскільки базовий клас сам по собі може бути похідним класом, у класу може бути багато базових класів.
  • Члени похідного класу можуть отримати доступ до публічних, захищених, внутрішніх та захищених внутрішніх членів базового класу.
  • Через транзитивний характер успадкування, хоча похідний клас має лише один базовий клас, він успадковує членів, оголошених у батьківському базовому класі.
  • Оголосивши метод у базовому класі віртуальним, похідний клас може замінити цей метод із власною реалізацією. Як перекритий, так і переорієнтований метод та властивість повинні мати однакові модифікатори рівня доступу, такі як віртуальний, абстрактний або переосмислений.
  • Коли ключове слово "реферат" використовується для методу, воно повинно бути відмінене в будь-якому неабразованому класі, який безпосередньо успадковується від цього класу.
  • Абстрактні базові класи створюються за допомогою ключового слова "абстрактний" у його декларації та використовуються для запобігання прямого ініціювання за допомогою "нового" ключового слова. Їх можна використовувати лише через похідні класи, що реалізують абстрактні методи.
  • Базовий клас може запобігти успадкуванню інших класів від нього, оголосивши всіх членів "запечатаними".
  • Члени базового класу можна приховати у похідному класі за допомогою ключового слова "new", щоб вказати, що член не призначений бути переосмисленням базового члена. Якщо "new" не використовується, компілятор генерує попередження.

Хоча базовий клас та інтерфейс можна використовувати взаємозамінно, класи більш гнучкі, ніж інтерфейси з точки зору версії. Базовий клас є переважним у більшості випадків, за винятком наступних сценаріїв, коли:

  • Кілька неспоріднених класів утворюють основу для похідного класу
  • У класах вже встановлені базові класи
  • Агрегація не підходить і не є практичною
Це визначення було написано в контексті C #
Що таке базовий клас - .net? - визначення з техопедії