Різниця між перевантаженням методу і переосмисленням

Метод Перевантаження

Метод перевантаження, також відомий як Перевантаження функцій або Поліморфізм компіляції часу, - це концепція наявності двох або більше методів з однаковою назвою, але різними підписами в одному обсязі. Існує багато мов програмування, які підтримують цю функцію: Ada, C ++, C #, D та Java.

Приклад перевантаження методу в C #
Як показано у наведеному вище прикладі, метод "Полігон" перевантажується 3 рази з різним підписом методу, тобто тип або кількість параметрів різні.

Перевизначення методу

Перевизначення методу, також відомий як переосмислення функції або поліморфізм часу виконання, є функцією OOP, яка дозволяє дочірньому класу забезпечити власну реалізацію методу, визначеному в батьківському класі. Реалізація в дочірньому класі переосмислює визначення методу в базовому класі за умови, що метод у дочірньому класі повинен мати те саме ім'я, підпис і тип повернення.

Приклад переосмислення методу в C #
Тут метод малювання в класі Source2 переосмислює метод малювання, визначений у класі Source1.

Різниця між перевантаженням методів і переоціненням методу

  1. У методах перевантаження метод має бути інший підпис. У методі переважаючі методи повинні мати однаковий підпис.
  2. Функція Перевантаження - це "додавання" або "розширення" більше до поведінки методу. Переосмислення функції полягає в тому, щоб повністю "змінити" або "переглянути" поведінку методу.
  3. Метод перевантаження використовується для досягнення поліморфізму часу компіляції; метод переосмислення використовується для досягнення поліморфізму під час виконання.
  4. У перевантажувальному способі / функції компілятор знає, який об'єкт присвоєно цьому класу під час компіляції, але в методі, що переосмислює цю інформацію, невідомо до часу виконання.
  5. Функція Перевантаження відбувається в тому ж класі, тоді як переопределення відбувається в класі, похідному від базового класу.