The ключова різниця між перекриттям і перевантаженням в C # це те, що прив'язка виклику методу, що перекривається, до його визначення відбувається під час виконання, тоді як прив'язка перезавантаженого виклику методу до його визначення відбувається під час компіляції.
C # - мова програмування загального призначення, розроблена Microsoft. Основна перевага C # полягає в тому, що він підтримує об'єктно-орієнтоване програмування (OOP). Один стовп ООП - поліморфізм. Це дає об'єкту багаторазове поведінку. У поліморфізмі є два типи, відомі як перенапруження та перевантаження. У цій статті йдеться про різницю між перекриттям методом і перевантаженням на C #.
1. Огляд та ключові відмінності
2. Що є головним у C #
3. Що таке перевантаження в C #
4. Подібність між перекриттям і перевантаженням у C #
5. Порівняльне порівняння - переосмислення проти перевантаження в C # в таблиці
6. Підсумок
Є ще одна важлива концепція OOP - спадкування. Це використовувати атрибути та методи вже існуючого класу. Це покращує використання коду. Уже існуючий клас є базовим класом, а новий клас відомий як похідний клас. При переважанні поліморфізму повинні бути базовий клас та похідний клас. Прив'язка виклику методу, що перекривається, до визначення відбувається під час виконання. Приклад такий.
Малюнок 01: Програма C # з переосмисленням
Відповідно до вищезгаданої програми, клас Shape є базовим класом, і він містить метод відображення. Клас Прямокутник і Трикутник - це похідні класи. Ці похідні класи також мають однаковий спосіб відображення з власними реалізаціями.
Спочатку створюється опорна змінна obj. Він вказує на об’єкт Shape. Отже, метод відображення класу Shape буде виконуватися. Потім опорна змінна вказує на об’єкт Прямокутник. Отже, метод відображення класу Rectangle виконає. Нарешті, опорна змінна вказує на об’єкт Трикутник. Отже, метод відображення класу Трикутник виконає. Метод відображення базового класу переосмислюється методами відображення похідних класів.
Метод запуску визначається під час виконання. Клас "Форма" записується за допомогою "віртуального" ключового слова. Класи «Прямокутник» та «Трикутник» записуються із ключовим словом «переосмислити». Якщо ці ключові слова не використовуються, вихід буде надрукувати вміст методу відображення класу Shape для всіх.
При перевантаженні кілька методів мають однакову назву, але з різними параметрами. Параметри можуть бути різних типів. Методи також можуть мати різну кількість параметрів. Перевантаження методу відбувається в одному класі. Прив'язка перевантажених методів до визначення відбувається в момент компіляції. Перегляньте нижче програму C #.
Малюнок 02: Програма C # з перевантаженням
Згідно з вищенаведеною програмою, клас A має два методи з однаковою назвою sum. Вони мають різні типи параметрів. У головній програмі створюється об’єкт A. Сума (2,3) викликає метод суми з цілими числами. Сума (5.1, 7.94) викликає метод подвійних значень. Обидва методи мають однакову назву та однакову кількість параметрів. Але типи параметрів різні. Необхідний метод називається відповідно. Перевантаження також може статися, якщо назви методів та типи параметрів однакові, але кількість параметрів різна.
Перевищення проти перевантаження в C # | |
Перевизначення в C # - це забезпечення конкретної реалізації у похідному методі класу для методу, який вже існує в базовому класі. | Перевантаження в C # - це створення декількох методів з однаковою назвою з різними реалізаціями. |
Параметри | |
У режимі C # Overriding методи мають те саме ім'я, однакові типи параметрів та однакову кількість параметрів. | У перевантаженні C # методи мають однакову назву, але різну кількість параметрів або інший тип параметрів. |
Виникнення | |
У C # переосмислення відбувається в межах базового класу та похідного класу. | У C # перевантаження відбувається в межах одного класу. |
Час зв’язування | |
Прив'язка виклику методу, що перекривається, до його визначення відбувається під час виконання. | Прив'язка виклику перевантаженого методу до його визначення відбувається під час компіляції. |
Синоніми | |
Перевизначення називається як поліморфізм виконання, динамічний поліморфізм або пізнє зв’язування. | Перевантаження називається як скласти поліморфізм часу, статичний поліморфізм або раннє зв’язування. |
Перевищення та перевантаження - це два види поліморфізму. Різниця між перекриттям і перевантаженням в C # полягає в тому, що прив'язка виклику методу, що перекривається, до його визначення відбувається під час виконання, тоді як прив'язка виклику перевантаженого методу до його визначення відбувається під час компіляції.
1.Кумар, Мукеш. C # Куточок. Доступний тут
2.tutorialspoint.com. "Поліморфізм C #". Підручники. Доступний тут
3.tutorialspoint.com. "Типи даних C #." ПідручникиPoint, доступні тут