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

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

Методът на претоварване, известен още като Функционално претоварване или Полиморфизъм за компилиране на време, е концепция да има два или повече метода със същото име, но различен подпис в същия обхват. Има много езици за програмиране, които поддържат тази функция: Ada, C ++, C #, D и Java.

Пример за претоварване на метод в C #
Както е показано в горния пример, методът "Полигон" се претоварва 3 пъти с различен подпис на метод, т.е. типът или броят на параметрите са различни.

Метод Overriding

Отмяна на метода, известен още като преодоляване на функция или полиморфизъм на време, е OOP функция, която позволява на даден клас да предостави собствена реализация на метода, определен в родителския клас. Реализацията в дъщерния клас отменя определението на метода в базовия клас, при условие че методът в детския клас трябва да има същото име, подпис и тип връщане.

Пример за отмяна на метод в C #
Тук методът на изтегляне в класа Source2 отменя метода на изтегляне, определен в класа Source1.

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

  1. Методите за претоварване на метод трябва да имат различен подпис. В метода преобладаващите методи трябва да имат същия подпис.
  2. Функция Претоварването е да "добавите" или "разширите" повече към поведението на метода. Функцията, която отменя, е напълно да "промени" или "предефинира" поведението на даден метод.
  3. Методът на претоварване се използва за постигане на полиморфизъм във времето на компилация; метод за отместване се използва за постигане на полиморфизъм от време на работа.
  4. При претоварване на метод / функция компилаторът знае кой обект е присвоен на кой клас по време на компилирането, но в метода, който отменя тази информация, не е известен до изпълнение.
  5. Функция Претоварването се извършва в един и същ клас, докато Overriding се извършва в клас, получен от базов клас.