Professional Documents
Culture Documents
13A OOP Nasledjivanje
13A OOP Nasledjivanje
Nova klasa ima sve osobine kao i postojeća klasa, pri čemu neke od
nasleđenih osobina mogu biti promenjene, a neke nove dodate.
Izvedene klase ili klase potomci su one koje nasleđuju osnovnu roditeljsku
klasu.
Svi metodi i sva svojstva roditeljske klase mogu biti iskorišćena u izvedenoj
klasi izuzev privatnih članova klase.
Geo-
metrija
generalizacija
Figure Tela
Pravo-
Trougao ... Krug Valjak Kupa ... Lopta
ugaonik
Specijalizacija
Specijalizacija je obrnuti postupak – put od opšteg ka pojedinačnom.
Pođemo od klase, na primer Ptice, pa u njoj uočavamo grupe koje imaju slične
karakteristike i izdvajamo ih u posebne izvedene klase. Npr. Price Letaci i Ptice Ne
Letaci…
Ptice
Ptice Ptice ne
specijalizacija
Letaci Letaci
Vrabac
Mika Vrac Mika i vrabac Jova su konkretne instance
(objekti) klase Vrabac i oni nasleđuju sve
Vrabac osobine svojih nadklasa.
Jova
Primer: Škola
Osoba
Razredni
starešina
Admini- Pomoćni
stracija radnik
Npr, posmatrajmo klasu Profesor: neki profesori imaju dodatnu funkciju i stoga iz klase
Profesor izvodimo klasu RazredniStaresina.
RazredniStaresina ima sve šta ima i Profesor, ali ima i dodatni član klase – odeljenje
kome je dati profesor razredni starešina.
Nasleđivanje (inheritance)
Klasa Profesor ima:
svojstvo ImePrezime koje sadrži ime i prezime profesora,
konstruktor klase u kome se postavlja ime i prezime
metod za prikaz podataka o profesoru.
Porukom obaveštavamo
kada je pozvan
konstruktor klase!!!
Nasleđivanje (inheritance)
Klasa RazredniStaresina ima:
svojstvo ImePrezime koje sadrži ime i prezime profesora,
svojstvo Odeljenje koje pokazuje u kom je odeljenju taj profesor razredni
starešina
konstruktor klase u kome se postavlja ime i prezime i odeljenje
metod za prikaz podataka o profesoru.
Nasleđivanje (inheritance)
Razredni staresina je takođe i profesor u školi i ima svoje ime i prezime, ali ima i
odeljenje kome je starešina.
Razredni starešina je samo specijalan slučaj klase Profesor, tj. Ima sve osobine kao i
Profesor, ali i svoju specifičnu osobinu (odeljenje)
Na taj način ne moramo ponovo da pišemo telo konstruktora, već samo možemo da
unesemo dodatni kod u telo konstruktora izvedene klase i on će biti izvršen posle
izvršenja roditeljskog konstruktora.
Ako se izostavi ključna reč base, poziva se default konstruktor roditeljske klase.
Nasleđivanje (inheritance)
U glavom programu kreiramo jedan objekat klase Profesor i jedan objekat klase
RazredniStaresina
Da bi ovo bilo moguće potrebno je u osnovnoj klasi, metod koji će kasnije biti
predefinisan, proglasiti virtualnim dodavanjem ključne reči virtual
U izvedenoj klasi ključna reč override označava metod koji će da pregazi istoimeni
metod iz roditeljske klase.
Tj. kada u izvedenoj klasi predefinišemo neku metodu (override) dobili smo da
se jedna ista metoda ponaša na više različitih načina.
Specifikator pristupa protected da se članu klase koji obeležen kao protected može
pristupiti samo unutar te klase ili unutar izvedenih klasa koje nasleđuju datu klasu.
Unutar klase DA DA DA
Van klase DA NE NE
Pravougaonik:
Zaštićena polja duzina i sirina,
Javna svojstva za postavljanje i čitanje privatnih atributa
Konstruktor klase kojim se inicijalizuju vrednosti stranica pravougaonika
Metod Ispis za prikaz stranica,
Metod Povrsina koji računa površinu pravougaonika.