Съдържание:
Определение - Какво означава Базов клас - .NET?
Базов клас в контекста на C # е клас, който се използва за създаване или извличане на други класове. Класовете, получени от базов клас, се наричат детски класове, подкласове или производни класове. Базовият клас не наследява от никой друг клас и се счита за родител на производен клас.
Базовият клас формира средствата, чрез които наследяването се осъществява чрез деривация. Клас, получен от базов клас, наследява както данни, така и поведение. Например, превозното средство може да бъде базов клас, от който могат да се получат произведените класове автомобил и автобус. И автомобилът, и автобусът са превозни средства и всеки от тях представлява собствените си специализации на базовия клас.
Както в Java, но за разлика от C ++, C # не поддържа множество наследявания на класове. C # се различава от Java по изричното маркиране на виртуален модификатор за всички виртуални членове.
Базов клас е известен още като родителски клас или суперклас.
Techopedia обяснява базовия клас - .NET
Базовият клас помага да се създаде специализиран клас, който може да използва повторно кода, който имплицитно е спечелен от базовия клас (с изключение на конструктори и деструктори) и да разширява функционалността на базовия клас, като добавя или преодолява членове, свързани с производен клас в производен клас. В C # събитията се декларират в базов клас, който може да бъде издигнат от производни класове. Общите класове, които се използват за капсулиране на операции, които не са специфични за определен тип данни, служат като базови класове, осигурявайки общо поведение, така че да се постигне гъвкавост и повторно използване на кода.
Ключовите свойства на базовия клас в C #:
- Членовете на базовия клас (конструктор, метод на екземпляр или аксесоар за собственост на екземпляр) се осъществяват достъпа в производен клас с помощта на ключовата дума "base".
- Базовите класове автоматично се активират преди извлечените класове.
- Полученият клас може да комуникира с базовия клас по време на инстанция, като се обади на конструктора на базовия клас със съвпадащ списък с параметри.
- Членовете на базовия клас могат да бъдат достъпни от извлечения клас чрез изричен състав.
- Тъй като самият базов клас може да бъде производен клас, един клас може да има много базови класове.
- Членовете на производен клас могат да имат достъп до обществени, защитени, вътрешни и защитени вътрешни членове на базовия клас.
- Поради преходния характер на наследяването, въпреки че производен клас има само един базов клас, той наследява членовете, декларирани в родителя на базовия клас.
- Чрез деклариране на метод в базовия клас като виртуален, полученият клас може да отмени този метод със собствена реализация. Както преобърнатият, така и отменящият метод и свойството трябва да имат едни и същи модификатори на ниво достъп, като виртуални, абстрактни или отменящи.
- Когато ключовата дума "абстракт" се използва за метод, тя трябва да бъде отменена във всеки необразен клас, който директно наследява от този клас.
- Абстрактните базови класове се създават с помощта на ключовата дума "абстракт" в декларацията му и се използват за предотвратяване на директно иницииране с помощта на "новата" ключова дума. Те могат да се използват само чрез производни класове, които прилагат абстрактни методи.
- Базовият клас може да попречи на други класове да наследяват от него, като декларира всички членове като „запечатани“.
- Членовете на базовия клас могат да бъдат скрити в производен клас, като се използва ключовата дума "new", за да се посочи, че членът не е предназначен да бъде отмяна на базовия член. Ако "new" не се използва, компилаторът генерира предупреждение.
Въпреки че базовият клас и интерфейсът могат да се използват взаимозаменяемо, класовете са по-гъвкави от интерфейсите от гледна точка на версия. Базовият клас е предпочитан в повечето случаи с изключение на следните сценарии, когато:
- Няколко несвързани класа формират основата за извлечения клас
- Класовете вече имат установени базови класове
- Агрегацията не е подходяща или практична