![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
Alatke vezane za temu | Vrste prikaza |
![]() |
#1 |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
![]()
Dobio sam zadatak u kome se pojavljuje nasleđivanje i polimorfizam. U zadatku je "data" klasa sa parametizovanim konstruktorom koji ima 2 string parametra. E sad, tu klasu nasleđuju dve klase koje isto imaju parametizovani konstruktor sa istim string parametrima.
![]() Preciznije deo koda je ovde: Kod:
class OsnovnaKlasa { protected double atribut1; public string atribut2; public string atribut3; public virtual void Ispis(); //ovo je metoda koja ispisuje atribute 2 i 3 public OsnovnaKlasa(string parametar1, string parametar2) { atribut2=parametar1; atribut3=parametar2; } } class IzvedenaKlasa:OsnovnaKlasa { public IzvedenaKlasa(string parametar1, string parametar2) { <da li ovde treba nov konstruktor, pošto ova klasa nasleđuje gornju> } } ![]() ![]() EDIT: U zadatku su svi parametri isti Poslednja ispravka: Goonotora (12.6.2013 u 23:16) Razlog: Dopuna objasnjenja... |
![]() |
![]() |
![]() |
#2 | |
Starosedelac
|
![]() Citat:
Nadam se da nisam bio previše zbunjujuć ![]() |
|
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Lucic Nemanja na korisnoj poruci: | ||
Goonotora (12.6.2013) |
![]() |
#3 |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
![]()
Znaci, ta dva konstruktora su svaki za sebe, iako imaju identicne parametre koje ih prosledjuju? Jer u zadatku i jedan i drugi konstruktor bi trebalo da rade isto: prosledjuju se parametri tipa string i dodeljuju se odgovarajucim atributima prosledjene vrednosti (ovo stoji u opisu i osnovne i izvedene klase u zadatku). E sad, prema zadatku ispada da treba ovakav konstruktor da bude u izvedenim klasama:
Kod:
public IzvedenaKlasa(string parametar1, string parametar2) { atribut2=parametar1; atribut3=parametar2; } ![]() ![]() Poslednja ispravka: Goonotora (12.6.2013 u 23:50) Razlog: Feeling... |
![]() |
![]() |
![]() |
#4 |
Veteran
|
![]()
Ako ti osnovna klasa ima sve potrebne parametre (tj ona koja nju nasledjuje nema nikakve dodatne koje bi morao da inicijalizujes pomocu konstruktora) dovoljno je da u konstruktoru pozoves konstruktor osnovne klase.
Kod:
public IzvedenaKlasa(string parametar1, string parametar2):base(parametar1,parametar2) { } |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Ivan452 na korisnoj poruci: | ||
Goonotora (13.6.2013) |
![]() |
#5 | |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
![]() Citat:
|
|
![]() |
![]() |
![]() |
#6 |
V.I.P. Programiranje
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
|
![]()
Pa da, zadatak ti kaze da konstruktor izvedene klase treba da dodeli vrednosti u nasledjene parametre, dakle, treba samo da pozoves konstruktor osnovne klase i to je to.
|
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku irreal na korisnoj poruci: | ||
Goonotora (13.6.2013) |
![]() |
#7 |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
![]()
Znaci, kao zakljucak, u konstruktor izvedene klase samo stavljam dodatne naredbe (one naredbe koje nisu u konstruktoru osnovne klase), recimo, u jednoj izvedenoj klasi se dodaje celobrojni atribut, i dodelu vrednosti tog atributa stavljam u konstruktor izvedene klase.
EDIT: Hvala svima na pomoci. Mozda cu uskoro postaviti dva zadatka koja sam trebao da uradim iz programiranja u realnom vremenu (preciznije PHP, HTML i MySQL) Poslednja ispravka: Goonotora (13.6.2013 u 13:35) Razlog: Update... |
![]() |
![]() |
![]() |
#8 |
Starosedelac
|
![]()
Ja mislim da covek ne kapira malo teorije
![]() Anyway, imas polja osnovne i polja nasledjene klase. Polja osnovne inicijalizuje konstruktor osnovne klase, a polja izvedene inicijalizuje konstruktor izvedene klase. Redosled pozivanja je uvek konstruktor osnovne pa konstruktor izvedene. Konstruktor osnovne pozivas nardebom base(argumenti). Ako ga eksplicitno ne pozoves poziva se default konsruktor bez argumenata. Dakle u ovom primeru nardebom base(parametar1, parametar2) ti zapravo govoris da prvo treba da se pozove konstruktor osnovne sa datim parametrima pa onda konstruktor izvedene koji je definisan telom {...}. Poslednja ispravka: Lucic Nemanja (14.6.2013 u 2:39) |
![]() |
![]() |
![]() |
#9 | |
Član
Član od: 16.4.2010.
Lokacija: Pančevo
Poruke: 462
Zahvalnice: 41
Zahvaljeno 68 puta na 63 poruka
|
![]() Citat:
|
|
![]() |
![]() |
![]() |
#10 |
Starosedelac
|
![]() |
![]() |
![]() |
![]() |
Bookmarks sajtovi |
|
|
![]() |
||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
C zadatak sa nizovima | Goonotora | Programiranje | 6 | 26.9.2012 11:52 |
c++ zadatak | sunce86 | Programiranje | 19 | 7.6.2010 22:37 |
Kviz na Pinku - matematički zadatak! | stevan10 | Brbljaonica | 15 | 18.3.2009 13:00 |
Jedan zadatak u C-u | RuSkO_17 | Programiranje | 18 | 17.11.2008 17:30 |