Обектно-ориентираното програмиране (OOP) обикновено се използва за разработване на софтуер. Много езици за програмиране поддържат обектно-ориентирано програмиране. Обектно-ориентираното програмиране е методология за проектиране на програма с помощта на класове и обекти. Класът в OOP е план за създаване на обект. Класът има свойства и методи. Обектът е екземпляр от клас. OOP съдържа четири стълба като Наследяване, Полиморфизъм, Абстракция и Капсулация. Тази статия обсъжда разликата между полиморфизма и наследството в OOP. Най- ключова разлика между полиморфизма и наследството в OOP е това Полиморфизмът е способността на един обект да се държи по много начини, а Наследяването е да създаде нов клас, използвайки свойства и методи на съществуващ клас.
1. Преглед и ключова разлика
2. Какво е полиморфизъм в OOP
3. Какво е наследството в OOP
4. Прилики между полиморфизма и наследството в OOP
5. Паралелно сравнение - Полиморфизъм срещу наследяване в OOP в таблична форма
6. Резюме
Полиморфизмът означава да се обозначават множество форми. Един обект може да има множество поведения. Полиморфизмът може да бъде разделен на две категории. Те са претоварващи и преобладаващи.
Вижте по-долу програмата, написана на Java.
Фигура 01: Претоварване
Според горната програма се създава обект от тип А. Когато се обаждате obj.sum (); той ще даде резултата, свързан с метода sum (). Когато се обаждате на obj.sum (2,3); той ще даде резултата, свързан със сумата (int a, int b). Може да се отбележи, че един и същ обект има различно поведение в зависимост от ситуацията. Когато има няколко метода с едно и също име, но с различни параметри, той е известен като претоварване. Той също е известен като статично свързване или съставете полиморфизъм във времето.
Друг вид Полиморфизъм е първостепенни. Вижте по-долу програмата, написана на Java.
Фигура 02: Преодоляване
Според горната програма има метод на дисплея () в клас А. Клас В се простира от клас А. Следователно всички методи в клас А са достъпни от клас Б. Това е наследяване. Концепцията за наследяване е описана по-нататък по-късно.
Клас B също имат същия метод за показване (). При създаване на обект от тип A и извикване на метод за показване, изходът ще даде B. Методът за показване на клас A се отменя от метода на дисплей клас B. И така, изходът е B.
Когато има методи с едно и също име и едни и същи параметри, но в два различни класа и те са свързани с наследяването, то е известно като преодоляване. Той също е известен като Късно свързване, динамично свързване, полиморфизъм по време на изпълнение. Претоварването и преодоляването се наричат Полиморфизъм. Тя е основна концепция в обектно-ориентираното програмиране.
Вижте по-долу програмата, написана на Java.
Фигура 03: Пример за наследяване
Съгласно горната програма, клас A има метод sum (), а клас B има метод sub ().
Методът sum () на клас A може да се използва в клас B с помощта на ключова дума разширяване. Използването на свойствата и методите в съществуващ клас за създаване на нов клас е известно като Наследяване. Дори няма метод sum () в клас B; наследява се от клас А. Наследяването е полезно за повторно използване на код. По-старият клас се нарича базов клас, суперклас или родителски клас. Полученият клас се нарича подклас или детски клас.
Има различни видове наследяване. Те са едностепенно наследяване, наследяване на много нива, множествено наследяване, йерархично наследяване и хибридно наследяване.
В Single Inheritance има един супер клас и един подклас. Ако клас A е суперкласът, а клас B е подкласът, всички свойства и методи на клас A са достъпни от клас B. Има само едно ниво; следователно, той се нарича като едностепенно наследяване.
В наследяването на много нива има три нива на класове. Междинният клас наследява от суперклас. Подкласът наследява от междинния клас. Ако има три класа като A, B и C и A е суперкласът и B е междинният клас. Тогава B наследява от A и C наследява от B, това е наследство на много нива.
В множественото наследство има много супер класове и един подклас. Ако има три суперкласа, наречени A, B, C и D е подкласът, тогава клас D може да наследи от A, B и C. Множество наследяване се поддържа в езика за програмиране C ++. Не се поддържа в езици за програмиране като Java или C #. Интерфейсите се използват за внедряване на множество наследства на тези езици.
Ако има класове, наречени A като суперкласове, и B, C са подкласове, тези подкласове могат да наследяват свойства и методи от клас А. Този вид наследяване е известен като йерархично наследяване.
Има още един специален тип наследяване, който е известен като Хибридно наследяване. Това е комбинация от многостепенни и множество наследявания. Ако A, B, C и D са класове и B е наследствено от A и D е наследствено от B и C, то това е хибридно наследство.
Полиморфизъм срещу наследство в OOP | |
Полиморфизмът е способност на обект да се държи по много начини. | Наследяването е да се създаде нов клас, като се използват свойства и методи на съществуващ клас. |
употреба | |
Полиморфизмът се използва за обекти, за да се извика коя форма на методи по време на компилиране и време на изпълнение. | Наследяването се използва за повторно използване на код. |
изпълнение | |
Полиморфизмът се прилага в методи. | Наследяването се осъществява в класове. |
Категории | |
Полиморфизмът може да бъде разделен на претоварване и преодоляване. | Наследяването може да бъде разделено на едностепенно, многостепенно, йерархично, хибридно и многократно наследяване. |
Полиморфизмът и наследяването са основни понятия в обектно-ориентираното програмиране. Разликата между полиморфизма и наследяването в OOP е, че полиморфизмът е общ интерфейс към множество форми и наследяването е да се създаде нов клас, използвайки свойства и методи на съществуващ клас. И двете концепции се използват широко в разработката на софтуер.
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версия тук Разлика между полиморфизъм и наследяване в OOP