ПредишенСледващото

Е, да, и не. Зависи от това какво разбират под полиморфизъм.

Като цяло, полиморфизъм е способността за лечение по същия начин с образувания от различни видове. Или малко повече изследвания, за съществуването на общ интерфейс (с изключение на C #) имат различни видове лица. Това е много общо понятие, което може да бъде много по този участък. Какво става, ако това се случи и това, което на езика на абстракция в същото време ще бъдат включени, не е толкова важно.

Чрез този метод претоварване полиморфизъм се отнася най-пряко: този ад-хок полиморфизъм за функции в него може да предава различни видове (в рамките на провежданата задръстванията) и в същото време друг код на програмата. (Метод за класовете обекти може да се разглежда като функция с допълнителен имплицитно аргумент: обекта чийто метод се нарича [тази в Шарп]).

Възможно е да има логичен въпрос: не е ли тогава различните различните функции на претоварване, не се счупят, когато в същото време, отговаряща на определението за полиморфизъм? Отговор: Има полиморфизъм на нивото на езика. и ако на езика на претоварване със същото име, но различни видове се считат за една и съща функция, определението е изпълнено и всичко е ОК.

По-ниски нива, разбира се, с различен код е поставен на различни места и изпълнение по някакъв начин трябва да бъдат изпратени до различни места, технически, отнасящи се до прехвърлените стойности по различни начини. Но и тези нива не директно работят, полиморфизъм има, ако има (което е малко вероятно), то не е изцяло (или не?) Този, който използвате.

ООП е полиморфизъм обикновено разбират много по-тясна концепция: способността да се обадя на един и същ метод за всеки обект от даден клас / интерфейс или някоя от нейните подкласове / изпълнение.

Чрез този полиморфизъм претоварване е наистина без значение.

(* Временна анкетна, латински, за ситуацията, специална)

Традиционно, най-PLO общност "полиморфизъм" често се нарича просто вид полиморфизъм, свързан с подтипове. В "полиморфизъм" на FP на Общността, се нарича параметрично полиморфизъм. Wikipedia цитира три вида полиморфизъм в CS - повод, параметрични и подтипове. Въпреки това други източници могат да предложат различен дивизия.

Термините "статична" и "динамична" полиморфизъм е приложима само за конкретна реализация на даден език, особено в динамично въвели езици претоварени функции могат да се изпълняват по време на програмата.

Отговорено 23 '16 ноември в 13:48

@DenisBubnov C # и подкрепя ОП, и ООП и други парадигми. - Abyx 23ти ноември '16 в 14:18

@DenisBubnov, и мисля, че е правилно. В крайна сметка, на концепцията за полиморфизъм съществува в много езици, и програмиране в частност. Във всички езици и парадигми на различни полиморфизъм и така, когато те казват двама програмисти на един език, но с различни парадигми, които не могат да разбират. И това, което можем да кажем за противоречието на програмисти от различни езици. Ето защо, всички по-горе знания само ще бъде от полза и ще помогне да се разбере по-добре този въпрос. - OlmerDale 23 ноември '16 в 14:34

Концепцията за полиморфизъм има няма ясна дефиниция, но за obktno ориентиран подход обикновено се приеме, че има два вида полиморфизъм:

Dynamic (използването на виртуални методи и тяхното предефиниране в класове наследници) - в този случай версия на кода се определя от наречена CLR време на изпълнение, който да предава отменя верига в класовете на детето.

Статично (използване на генерични продукти (генерични)) - в този случай, на един и същ версия на кода за различните типове обекти.

Претоварване методи въз основа на по-горе термини не е полиморфизъм защото специален код и вида на обекта е известно, по време на компилация. С други думи, в този случай, ние просто има различни методи, с едно и също име, различни видове или брой параметри, подавани.

Със същия резултат бихме могли да добавите към името на типовете метод на параметрите, така и по отношение на архитектурата нищо izmentitsya приложения и polimrfizm - е, на първо място, инструмент на архитектурния подход за решаване на проблемите.

Полиморфизъм е различен. По-специално, статични и динамични.

Статичен полиморфизъм - когато тя се определя от претоварване на няколко функции въз основа на вида на списъка с аргумент.

Така че всичко е въпрос на терминология. Може би колегите си по полиморфизма се разбира чисто динамични.

В C #, можете да споделяте всеки със същото име в два или повече метода от същия клас, при условие че техните параметри са обявени по различен начин. В този случай казваме, че методите са претоварени, и процесът се нарича метод претоварване.

Помислете тук е прост метод:

И пиша методи, за да го претоварят:

Ние претоварен метод OverloadMethod два пъти.

Какво може да се види по време на извикване на метода:

Метод претоварване поддържа полиморфизъм собственост, тъй като по този начин се реализира в C # основният принцип на полиморфизъм в един интерфейс - набор от методи.

В C #, всеки метод може да бъде назначен със същото име. C # компилатор определя коя версия на метода OverloadMethod се ползва въз основа на типа на аргумента предава по време на извикване на метода.

В C #, дефинирано понятието за подпис се посочва името на метода, както и списък на нейните параметри; Що се отнася до претоварване този термин означава, че един клас не трябва да съществува два метода със същия подпис. Трябва да се подчертае, че подписът не включва типа на връщане, тъй като не се взема под внимание, когато C # компилатора да вземе решение относно начина на претоварване. Подписът не се включва като модификатор Поколения назад.

Ако C # няма да подкрепят претоварване, тя ще трябва да се дава на всеки метод за името му, което не е много удобно. В този случай, метод OverloadMethod прилага няколко претоварвания.

Полиморфизъм - е принципът на обектно-ориентираното програмиране след капсулиране и наследство. Този имот, което позволява едно и също име да се използва за решаване на две или повече подобни, но технически различни задачи. Целта на полиморфизъм по отношение на обектно-ориентираното програмиране е използването на едно име за определяне общ клас действие.

Концепцията за полиморфизъм често се тълкува по различни начини, можете да видите много идеи, но всичко се свежда до един. В резултат на това, отговорът на въпроса: Има методи за претоварване полиморфизъм? - Аз казвам ДА.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!