C# Урок, Основи на наследяването
Наследяването е един от трите основни принципа на обектно-ориентираното програмиране, защото позволява създаването на йерархични класификации. Чрез наследяване можете да създадете общ клас, който дефинира характеристиките, споделяни от много свързани елементи. След това други, по-специфични класове могат да наследят от този клас, добавяйки свои собствени индивидуални характеристики към него.
В C# класът, който наследява, се наричаbase, а класът, който наследява, се наричаderived. Следователно производният клас е специализирана версия на базов клас. Той наследява всички променливи, методи, свойства и индексатори, дефинирани в базовия клас, като добавя свои собствени елементи към тях.
Всеки път, когато един клас наследява от друг, името на производния клас е последвано от името на базовия клас, разделено с двоеточие. В C# синтаксисът за наследяване на класове е изненадващо прост и лесен за използване. По-долу е схематично представяне на класа CSharp от горния пример:
Както можете да видите, класът CSharp получава достъп до полетата и методите на класа ProfessorWeb. Винаги помнете, че наследяването предотвратява капсулирането и следователно частните членове никога не могат да бъдат достъпни чрез препратка към обект. Тези. полето inf от примера не може да бъде извикано с екземпляр на класа obj.
Само един базов клас може да бъде указан за всеки производен клас. C# не предвижда наследяване на множество базови класове в един производен клас. (В това отношение C# се различава от C++, който позволява да се наследяват множество базови класове. Това трябва да се вземе предвид при пренасяне на C++ код къмC#.) Можете обаче да създадете йерархия на наследяване, където производен клас става базов клас за друг производен клас. (Разбира се, нито един клас не може да се базира пряко или косвено.) Но във всеки случай производният клас наследява всички членове на своя базов клас, включително променливи на екземпляри, методи, свойства и индексатори.
Основното предимство на наследяването е, че след като бъде създаден базов клас, който дефинира атрибутите, общи за много обекти, той може да се използва за създаване на произволен брой по-специфични производни класове. И всеки производен клас може точно да изгради своя собствена класификация.