Тхе кључна разлика између прегласавања и преоптерећења у Ц # је то везивање прекораченог позива методе за његову дефиницију догађа се у току извођења, док се везивање преоптерећеног позива за његову дефиницију дешава у време компилације.
Ц # је програмски језик опште намене који је развио Мицрософт. Главна предност Ц # је што подржава објектно оријентисано програмирање (ООП). Један од стубова ООП-а је полиморфизам. Објекту даје вишеструко понашање. Постоје два типа полиморфизма позната као преоптерећење и преоптерећење. Овај чланак говори о разлици између прегласавања и преоптерећења методе у Ц #.
1. Преглед и кључне разлике
2. Шта је пресудно у Ц #
3. Шта је преоптерећење у Ц #
4. Сличности између прегласавања и преоптерећења у Ц #
5. Упоредно упоређивање - превладавање над преоптерећењем у Ц # у табеларном облику
6. Резиме
Постоји још један важан концепт ООП-а - наслеђивање. То је коришћење атрибута и метода већ постојеће класе. Побољшава поновну употребу кода. Већ постојећа класа је основна класа, а нова класа је позната као изведена класа. У превладавању полиморфизма, треба постојати основна класа и изведена класа. Везивање прекинутог позива методе за дефиницију се дешава у току извођења. Пример је следећи.
Слика 01: Ц # програм са премошћивањем
Према горњем програму, класа Схапе је основна класа и садржи методу приказа. Класа Правокутник и Троугао су изведене класе. Ове изведене класе такође имају исти метод приказа са сопственим имплементацијама.
Прво се ствара референтна варијабла обј. Указује на објект Схапе. Дакле, приказати ће се метода приказа класе Схапе. Затим референтна варијабла упућује на објект Рецтангле. Дакле, приказати ће се метода приказа класе Рецтангле. Коначно, референтна варијабла упућује на објект Трокут. Дакле, приказати ће се метода приказа класе Триангле. Метода приказа основне базе надјачава методе приказивања изведених класа.
Начин извођења одлучује се током извођења. Класа облика је написана са кључном речју „виртуално“. Часови правокутника и троугла су написани кључном речју 'оверриде'. Ако се ове кључне речи не користе, излаз ће исписати садржај методе приказа класе Схапе за све.
Код преоптерећења више метода има исти назив, али са различитим параметрима. Параметри могу бити различитих типова. Методе такође могу имати различит број параметара. Преоптерећење метода догађа се у истој класи. Везивање преоптерећених метода за дефиницију се дешава у време превођења. Погледајте доњи Ц # програм.
Слика 02: Ц # програм са преоптерећењем
Према горе наведеном програму, класа А има две методе са истим именом зване сум. Имају различите врсте параметара. У главном програму се ствара објект А. Збир (2,3) ће се позивати на методу са целим бројевима. Сумма (5.1, 7.94) ће са двоструким вредностима позивати методу суме. Обе методе имају исти назив и исти број параметара. Али типови параметара су различити. Потребна метода се позива према томе. До преоптерећења може доћи и ако су називи метода и типови параметара исти, али је број параметара различит.
Превладавање над Преоптерећење у Ц # | |
Прекорачење у Ц # је обезбеђивање специфичне имплементације у методи изведене класе за методу која већ постоји у основној класи. | Преоптерећење у Ц # је стварање више метода са истим именом са различитим имплементацијама. |
Параметри | |
У Ц # Оверридинг, методе имају исти назив, исте типове параметара и исти број параметара. | У Ц # Оверлоадинг, методе имају исти назив, али различит број параметара или различиту врсту параметара. |
Појава | |
У Ц #, преклапање се догађа унутар основне класе и изведене класе. | У Ц #, преоптерећење се догађа унутар исте класе. |
Време везивања | |
Везивање прекинутог позива методе на његову дефиницију дешава се током извођења. | Везање преоптерећеног позива за његову дефиницију догађа се у време компилације. |
Синоними | |
Поништавање се назива као време полиморфизма, динамички полиморфизам или касно везивање. | Преоптерећење се назива саставити полиморфизам времена, статички полиморфизам или рано везивање. |
Прекорачење и преоптерећење су две врсте полиморфизма. Разлика између прегласавања и преоптерећења у Ц # је у томе што се везивање позива за прекривени метод за његову дефиницију дешава у току извођења, док се везивање преоптерећеног позива за његову дефиницију дешава у време компилације..
1.Кумар, Мукесх. Ц # угао. Доступно овде
2.туториалспоинт.цом. „Ц # полиморфизам.“ ТуториалсПоинт. Доступно овде
3.туториалспоинт.цом. „Типови података Ц #.“ ТуториалсПоинт, доступно овде