Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 3.631 pregleda

Najnovija ↓

new i override??? 02.05.2007. u 12:09 · pre 237 meseci #1
koja je uopste razlika izmedju nadjacavanja sa NEW i OVERRIDE???
Re: new i override??? 02.05.2007. u 13:22 · pre 237 meseci #3
dakle tek sam poceo sa C#...ono sto je meni jasno je da kada u nadklasi imam metodu koja je public i virtual, u podklasi napravim istu tu metodu sa modifikatorom new ja sam je preklopio i poziva se odgovarajuca metoda iz podklase...kada isto to uradim sa override umesto new, ISTO SE DESAVA ...te mi nije jasno koja je razlika...a siguran sam da postoji i da je verovatno NE mala...
Re: new i override??? 04.05.2007. u 22:09 · pre 237 meseci #5
Sa new se vrsi tzv skrivanje ako se radi o istom imenu imena(metode).NE treba to mnogo da te opterecuje jer new (po meni) nema nikakvu funkcionalnu korist.
Re: new i override??? 05.05.2007. u 13:37 · pre 237 meseci #6
Citat:
Glogov_Kolac: Sa new se vrsi tzv skrivanje ako se radi o istom imenu imena(metode).NE treba to mnogo da te opterecuje jer new (po meni) nema nikakvu funkcionalnu korist.


Sa ovim izlaganjem se nikako ne bih slozio. Ako nasledim TextBox i hoccu se u slucaju postavljanja teksta u tu kontrolu, property Text desi neka validacija, u svoju nasledjenu kontrolu staviccu "public new string Text".
Ovo je iz prostog razloga sto neccu da uvotim svojstvo (property) Text2.

Primer:

Code:

public class MyTextBox : TextBox
{

  public new string Text
  {
    get 
    {
      if (base.Text == "") return null;
      else return null;
    }
    set { ... } 
  }
}

Ovde sam jednostavno hteo da mi vraccena vrednost bude null ako je u textboxu prazan string, ali moguccnosti su neogranicene.

Nadam se da sam bio jasan.
Potpis
Nije važno stići prvi. Važno je prvo da stigneš.
Re: new i override??? 05.05.2007. u 15:14 · pre 237 meseci #7
@bunker

Sta ti ovo znaci, ne mogu nikako da provalim
Citat:

Ovo je iz prostog razloga sto neccu da uvotim svojstvo (property) Text2.


Inace Textbox.Text property je deklarisan kao virtual, tako da i bez new mozes da uradis to sto zelis, problem je samo sta zelis da uradis ;)

@Glogov_Kolac
Citat:
Glogov_Kolac: Sa new se vrsi tzv skrivanje ako se radi o istom imenu imena(metode).NE treba to mnogo da te opterecuje jer new (po meni) nema nikakvu funkcionalnu korist.


Ti nekako... reako pa porekao. Pa funkcialnost je upravo ta, da sakrije metodu u nasledjenoj klasi, tako da mozes da pozivas komotno base metodu a da je nisi pregazio.
Re: new i override??? 06.05.2007. u 08:17 · pre 237 meseci #8
evo, prekjuče mi je zatrebo new. Koristim neki source gde je baja lepo zamislio da će to uvek tako radi:

public bool IsDirty { get ... set ... }

šta da radim kad mi treba da malo našminkam getter? U izvedenoj klasi:

public new bool IsDirty { get { return base.IsDirty || nekimojizraz; } }
-----------------
new je krpež koji treba da ti pomogne da postojeću metodu/property prepraviš iako nije dizajnirana da bude polimorfna. treba ga izbegavati ali ne po cenu da komplikuješ svoj kod - kad mora, samo new!
Potpis
Acta, non verba!
Re: new i override??? 07.05.2007. u 08:32 · pre 237 meseci #9
@bunker
Ne moras do odgovoris, posle sam skontao. Nije mi bila jasna recenica zbog one reci 'uvotim' :)

@bjevta
new ima svoju primenu, i ne treba to dozivljavati tako 'ovo je krpzez' koristi se tamo gde treba i to je to. Nego pitanje koje se namce, je u kom kontekstu se koristi new i zasto? A to treba analizirati od slucaja do slucaja, mada ajde moze da se kaze neko generalno shvatanje. Inace ne mora se ni koristiti new, moze lepo da se napise samo nova deklaracije, jedino ce se kompajler zaliti ali i to moze da se iskljuci sa predprocesorskom direktivom:
Code:

#pragma warning disable 0108
#pragma warning disable 0114
// ne znam koji broj je za sta, treba proveriti u helpu :)
Re: new i override??? 07.05.2007. u 15:20 · pre 237 meseci #10
Budite veoma veoma obazrivi sa new. Vise puta sam morao da krpim to "gazenje" metoda.

new je veliki neprijatelj polimorfizma i mozete i smete da ga koristite ako i samo ako ste 100% sigurni da NIKO NIKAD nece koristiti instancu vase klase preko baznog tipa.
Tj:

Code:

public class MyTextBox : TextBox
{

  public new string Text
  {
    get 
    {
      if (base.Text == "") return null;
      else return null;
    }
    set { ... } 
  }
}


// negde dalje

TextBox xx = new MyTextBox();
string tt = xx.Text;   // bice pozvan bazni getText i vratice se "", ne null

Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme