Разлика между полиморфизъм и наследяване в ООП

Съдържание:

Разлика между полиморфизъм и наследяване в ООП
Разлика между полиморфизъм и наследяване в ООП

Видео: Разлика между полиморфизъм и наследяване в ООП

Видео: Разлика между полиморфизъм и наследяване в ООП
Видео: Принципы ООП. 1. Инкапсуляция 2024, Ноември
Anonim

Ключова разлика – полиморфизъм срещу наследяване в ООП

Обектно-ориентираното програмиране (ООП) обикновено се използва за разработване на софтуер. Много езици за програмиране поддържат обектно-ориентирано програмиране. Обектно-ориентираното програмиране е методология за проектиране на програма, използваща класове и обекти. Класът в OOP е план за създаване на обект. Класът има свойства и методи. Обектът е екземпляр на клас. OOP съдържа четири стълба като наследяване, полиморфизъм, абстракция и капсулиране. Тази статия обсъжда разликата между полиморфизма и наследяването в ООП. Ключовата разлика между полиморфизма и наследяването в ООП е, че полиморфизмът е способността на обект да се държи по множество начини, а наследяването е да се създаде нов клас, използвайки свойства и методи на съществуващ клас.

Какво е полиморфизъм в ООП?

Полиморфизмът означава множество форми. Един обект може да има множество поведения. Полиморфизмът може да бъде разделен на две категории. Те претоварват и надделяват.

Претоварване

Вижте програмата по-долу, написана на Java.

Разлика между полиморфизъм и наследяване в ООП
Разлика между полиморфизъм и наследяване в ООП

Фигура 01: Претоварване

Съгласно горната програма се създава обект от тип А. При извикване на obj.sum(); той ще даде изхода, свързан с метода sum(). При извикване на obj.sum(2, 3); ще даде изход, свързан със sum(int a, int b). Може да се види, че един и същ обект има различно поведение в зависимост от ситуацията. Когато има множество методи с едно и също име, но с различни параметри, това е известно като претоварване. Известен е също като статично обвързване или полиморфизъм по време на компилиране.

Отмяна

Друг тип полиморфизъм е преобладаващ. Вижте програмата по-долу, написана на Java.

Разлика между полиморфизъм и наследяване в OOP_Фигура 02
Разлика между полиморфизъм и наследяване в OOP_Фигура 02

Фигура 02: Замяна

Съгласно горната програма, има метод display() в клас A. Клас B се простира от клас A. Следователно всички методи в клас A са достъпни от клас B. Това е наследяване. Концепцията за наследяване е описана допълнително по-късно.

Клас B също има същия метод display(). Когато създавате обект от тип A и извиквате метод за показване, изходът ще даде B. Методът за показване от клас A се заменя от метод за показване от клас B. И така, резултатът е B.

Когато има методи с едно и също име и едни и същи параметри, но в два различни класа, и те са свързани с наследяване, това се нарича overriding. Известно е още като късно свързване, динамично свързване, полиморфизъм по време на изпълнение. Претоварването и замяната се наричат полиморфизъм. Това е основна концепция в обектно-ориентираното програмиране.

Какво е наследяване в ООП?

Вижте програмата по-долу, написана на Java.

Ключова разлика между полиморфизъм и наследяване в OOP
Ключова разлика между полиморфизъм и наследяване в OOP

Фигура 03: Пример за наследяване

Съгласно горната програма, клас A има метод sum(), а клас B има метод sub().

Методът sum() от клас A може да се използва в клас B чрез ключова дума extend. Повторното използване на свойствата и методите в съществуващ клас за създаване на нов клас е известно като наследяване. Дори няма метод sum() в клас B; той е наследен от клас A. Наследяването е полезно за повторно използване на кода. По-старият клас се нарича базов клас, суперклас или родителски клас. Произведеният клас се нарича подклас или дъщерен клас.

Видове наследство

Има различни видове наследство. Те са наследяване на едно ниво, наследяване на много нива, множествено наследяване, йерархично наследяване и хибридно наследяване.

Единично наследяване

В единичното наследяване има един суперклас и един подклас. Ако клас 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. Този тип наследяване е известен като йерархично наследяване.

Хибридно наследяване

Има друг специален тип наследяване, който е известен като хибридно наследяване. Това е комбинация от многостепенно и множествено наследяване. Ако A, B, C и D са класове и B наследява от A, а D наследява и от B и C, тогава това е хибридно наследяване.

Какви са приликите между полиморфизма и наследяването в ООП?

И двете са концепции на обектно-ориентираното програмиране

Каква е разликата между полиморфизма и наследяването в ООП?

Полиморфизъм срещу наследяване в ООП

Полиморфизмът е способността на даден обект да се държи по множество начини. Наследяването е да се създаде нов клас, използвайки свойства и методи на съществуващ клас.
Използване
Полиморфизмът се използва за обекти за извикване на коя форма на методи по време на компилиране и по време на изпълнение. Наследяването се използва за повторно използване на кода.
Внедряване
Полиморфизмът е внедрен в методи. Наследяването е имплементирано в класове.
Категории
Полиморфизмът може да бъде разделен на претоварване и преодоляване. Наследяването може да бъде разделено на едностепенно, многостепенно, йерархично, хибридно и множествено наследяване.

Резюме – Полиморфизъм срещу наследяване в ООП

Полиморфизмът и наследяването са основни понятия в обектно-ориентираното програмиране. Разликата между полиморфизма и наследяването в ООП е, че полиморфизмът е общ интерфейс към множество форми, а наследяването е да се създаде нов клас, използвайки свойства и методи на съществуващ клас. И двете концепции се използват широко в разработката на софтуер.

Изтеглете PDF Полиморфизъм срещу наследяване в OOP

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версия тук Разлика между полиморфизъм и наследяване в OOP

Препоръчано: