Рецоммендед, 2024

Избор Уредника

Разлика између начина преоптерећења и поништавања

Метход Оверлоадинг
Преоптерећење метода, познато и као преоптерећење функције или полиморфизам времена компајлирања, је концепт да имају два или више метода са истим именом, али различитог потписа у истом опсегу. Постоји много програмских језика који подржавају ову функцију: Ада, Ц ++, Ц #, Д и Јава.

Пример преоптерећења метода у Ц #

цласс ОверлоадСхапес {флоат Полигон (инт радијус, флоат пи) {флоат цирцлеАреа = пи * радиус *; } инт Полигон (инт дужина, инт ширина) {инт рецтанглеАреа = дужина * ширина; } инт Полигон (инт страна) {инт скуареАреа = страна * страна; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14цласс ОверлоадСхапес {флоат Полигон (инт радијус, флоат пи) {флоат цирцлеАреа = пи * радиус *; } инт Полигон (инт дужина, инт ширина) {инт рецтанглеАреа = дужина * ширина; } инт Полигон (инт страна) {инт скуареАреа = страна * страна; }}

Као што је приказано у горњем примеру, метода 'Полигон' је преоптерећена 3 пута са различитим потписом методе, тј. Тип или број параметара су различити.

Оверридинг Метход
Прекорачење метода, познато и као Прекорачење функције или Полиморфизам времена извођења, је ООП функција која дозвољава класе подређене да обезбеде сопствену имплементацију методу дефинисаном у родитељској класи. Имплементација у подређеној класи надјачава дефиницију методе у основној класи, под условом да метода у подређеној класи треба да има исто име, потпис и тип враћања.

Пример поништавања метода у Ц #

цласс Соурце1 {публиц воид драв () {Цонсоле.Врителине ("Ја сам у класи Соурце1"); }} Разред Соурце2 се проширује Соурце1 {публиц воид драв () {Цонсоле.Врителине ("Ја сам у класи Соурце2"); }}
1 2 3 4 5 6 7 8 9 10цласс Соурце1 {публиц воид драв () {Цонсоле. Врителине ("Ја сам у класи Соурце1"); }} Разред Соурце2 ектендс Соурце1 {публиц воид драв () {Цонсоле. Врителине ("Ја сам у класи Соурце2"); }}

Овде, метода драв у класи Соурце2 надјачава методу драв која је дефинисана у класи Соурце1.

Разлика између преоптерећења методе и превазилажења метода

  1. У методама преоптерећења метода мора имати другачији потпис. У методи, методе надјачавања морају имати исти потпис.
  2. Преоптерећење функције је „додавање“ или „проширење“ на понашање методе. Преклапање функција је да се потпуно промени или редефинише понашање методе.
  3. Преоптерећење метода се користи за постизање полиморфизма времена компајлирања; Прекорачење метода се користи за постизање полиморфизма у времену извођења.
  4. У методу / функцији преоптерећење компајлер зна који је објект додијељен којој класи у вријеме компилације, али у методу надјачавања ова информација није позната до времена извођења.
  5. Функција Преоптерећења се одвија у истој класи, док се Оверридинг одвија у класи изведеној из основне класе.
Top