Препоръчано, 2021

Избор На Редактора

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

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

Пример за претоварване на метод в C #

class OverloadShapes {float Полигон (int радиус, float pi) {float circleArea = pi * радиус * радиус; } int Полигон (int дължина, int ширина) {int rectangleArea = дължина * широчина; } int Полигон (int страна) {int squareArea = страна * страна; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14class OverloadShapes {float Полигон (int радиус, float pi) {float circleArea = pi * радиус * радиус; } int Полигон (int дължина, int ширина) {int rectangleArea = дължина * широчина; } int Полигон (int страна) {int squareArea = страна * страна; }}

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

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

Пример за заместване на метод в C #

class Source1 {public void draw () {Console.Writeline ("Аз съм в клас Source1"); }} class Source2 разширява Source1 {public void draw () {Console.Writeline ("Аз съм в клас Source2"); }}
1 2 3 4 5 6 7 8 9 10клас Source1 {публично невалиден () {Console. Writeline ("Аз съм в клас Source1"); }} class Source2 разширява Source1 {public void draw () {Console. Writeline ("Аз съм в клас Source2"); }}

Тук методът draw в класа Source2 замества метода draw, определен в класа Source1.

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

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