Ключова разлика - Замяна срещу претоварване в C #
Ключовата разлика между заместването и претоварването в C # е, че обвързването на извикания от заменен метод към неговата дефиниция се случва по време на изпълнение, докато обвързването на претовареното извикване на метод към неговата дефиниция се случва по време на компилиране.
C # е език за програмиране с общо предназначение, разработен от Microsoft. Основното предимство на C # е, че поддържа обектно ориентирано програмиране (OOP). Един от стълбовете на ООП е полиморфизмът. Той дава обект да има множество поведения. В полиморфизма има два типа, известни като заменяне и претоварване. Тази статия обсъжда разликата между замяна на метода и претоварване в C #.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е заместване в C #
3. Какво е претоварване в C #
4. Прилики между заместване и претоварване в C #
5. Равно до сравнение сравнение - Заменяне срещу претоварване в C # в таблична форма
6. Обобщение
Какво е заместване в C #?
Има още една важна концепция в ООП е наследяването. Той е да използва атрибути и методи на вече съществуващия клас. Подобрява повторната употреба на кода. Вече съществуващият клас е базовият клас, а новият клас е известен като производен клас. При замяна на полиморфизма трябва да има основен клас и производен клас. Обвързването на извикания за заменен метод към дефиницията се случва по време на изпълнение. Пример е следният.
Фигура 01: Програма C # с заместване
Според горната програма класът Shape е базовият клас и съдържа метода на показване. Class Rectangle и Triangle са производни класове. Тези производни класове също имат същия метод на показване със собствени реализации.
Първо се създава референтната променлива obj. Посочва към обекта Shape. И така, методът за показване на класа Shape ще се изпълни. След това референтната променлива сочи към обекта Rectangle. И така, методът за показване на класа Rectangle ще се изпълни. И накрая, референтната променлива сочи към обекта Triangle. И така, методът за показване на класа Triangle ще се изпълни. Методът за показване на базовия клас е заменен от методите за показване на производни класове.
Методът за изпълнение се решава по време на изпълнение. Класът Shape е написан с ключова дума „virtual“. Класовете Rectangle и Triangle са написани с ключова дума „override“. Ако тези ключови думи не се използват, изходът ще отпечата съдържанието на метода на показване на класа Shape за всички.
Какво е претоварване в C #?
При претоварване множество методи имат едно и също име, но с различни параметри. Параметрите могат да бъдат от различен тип. Методите могат да имат и различен брой параметри. Претоварването на метода се случва в същия клас. Обвързването на претоварените методи с дефиницията се случва по време на компилация. Вижте долната програма C #.
Фигура 02: Програма C # с претоварване
Според горната програма клас А има два метода със същото име, наречени sum. Те имат различни видове параметри. В основната програма се създава обект от A. Сумата (2,3) ще извика метода sum с цели числа. Сумата (5.1, 7.94) ще извика метода на сумата с двойни стойности. И двата метода имат едно и също име и еднакъв брой параметри. Но типовете параметри са различни. Необходимият метод се извиква съответно. Претоварване може да възникне и ако имената на методите и типовете параметри са еднакви, но броят на параметрите е различен.
Каква е приликата между замяна и претоварване в C #?
И заместването, и претоварването в C # са видове полиморфизъм
Каква е разликата между замяна и претоварване в C #?
Различна статия Средна преди таблица
Замяна срещу претоварване в C # |
|
Заместването в C # е да се осигури конкретна реализация в метод на производен клас за метод, който вече съществува в базовия клас. | Претоварването в C # е създаване на множество методи с едно и също име с различни реализации. |
Параметри | |
В C # Overriding методите имат същото име, еднакви типове параметри и еднакъв брой параметри. | В C # Overloading методите имат едно и също име, но различен брой параметри или различен тип параметри. |
Поява | |
В C # заменянето се случва в рамките на базовия клас и производния клас. | В C # претоварването се случва в рамките на същия клас. |
Време за обвързване | |
Обвързването на извикания за заменен метод към неговата дефиниция се случва по време на изпълнение. | Обвързването на претовареното извикване на метод към неговата дефиниция се случва по време на компилация. |
Синоними | |
Заменянето се нарича полиморфизъм по време на изпълнение, динамичен полиморфизъм или късно свързване. | Претоварването се нарича полиморфизъм във времето на компилация, статичен полиморфизъм или ранно свързване. |
Резюме - Замяна срещу претоварване в C #
Заменянето и претоварването са два вида полиморфизъм. Разликата между заменяне и претоварване в C # е, че обвързването на извикания за заменен метод с неговата дефиниция се случва по време на изпълнение, докато обвързването на извикания претоварен метод с неговата дефиниция се случва по време на компилиране.