Loading documents preview...
INTERFEJSI i UGNEŽDENE KLASE Dr Nenad Jovanovid FTN, 2010. godina 1
Interfejsi
Interfejs unapređuje koncept apstrakcije Interfejs je klasa bez realizacije Interfejs definiše tip u apstraktnom obliku Interfejs definiše imena metoda, argumente i povratne tipove, ali ne i implementaciju metode Interfejs može da sadrži i polja, ali su ona definisana kao static i final. ________________________ © N. Jovanovid, 2010.
2
Interfejsi ne mogu da prave primerke intefejsa Klasa može da proširi svoj tip implementacijom interfejsa Klasa može da implementira više intefejsa
________________________ © N. Jovanovid, 2010.
3
Deklarisanje interfejsa Interfejs se deklariše korišdenjem ključne reči interface, davanjem imena interfejsu i navođenjem članova interfejsa između vitičastih zagrada Ispred reči interface može da stoji i reč public, ako je dati interfejs definisan u datoteci sa istim imenom
________________________ © N. Jovanovid, 2010.
4
Članovi interfejsa Interfejs može da ima tri vrste članova • Polja (konstante) • Metode • Ugnežđene klase i interfejse
Svi članovi interfejsa su implicitno javni, ali se prema konvenciji modifikator public izostavlja
________________________ © N. Jovanovid, 2010.
5
Polja Interfejs može da deklariše imenovane konstante Ove konstante se definišu kao polja ali su implicitno public, static i final Ova polja moraju da se inicijalizuju
________________________ © N. Jovanovid, 2010.
6
Metode Metode deklarisane u interfejsu su implicitno abstaract i public Iza zaglavlja metode navodi se tačka i zarez Meteode ne mogu biti final, jer još nisu implementirane Metode interfejsa ne mogu biti statičke
________________________ © N. Jovanovid, 2010.
7
Implementacija interfejsa Klasa implementira interfejs navođenjem ključne reči implements i imena interfejsa nakon deklaracije klase: class Televizor implements Uredjaj{ // }
Na taj način izgled klase Televizor određen je interfejsom Uredjaj, ali treba definisati šta de ta klasa da radi ________________________ © N. Jovanovid, 2010.
8
Primer
________________________ © N. Jovanovid, 2010.
9
Primer
________________________ © N. Jovanovid, 2010.
10
Višestruko nasleđivanje Žbun Biljke Drvo
Malina
Jabuka Voće
________________________ © N. Jovanovid, 2010.
11
Višestruko nasleđivanje Kako interfejs nema realizaciju mogude je kombinovati više interfejsa Ovakvo kombinovanje interfejsa naziva se višestruko nasleđivanje, jer u tom slučaju možemo za neki objekat da kažemo da je i tipa a i tipa b i tipa c... Višestruko nasleđivanje pomodu interfejsa omogudava da se kombinuju ponašananja, ali realizaciju može da ima samo jedna klasa Interfejsi omogudavaju svođenje naviše ka više prostih tipova ________________________ © N. Jovanovid, 2010.
12
Primer
________________________ © N. Jovanovid, 2010.
13
Klasa Pas kombinuje klasu Zivotinja sa interfejsima MozeDatrci i MozeDaPliva U klasi PasPrimer imamo tri metode čiji argumenti su različiti interfejsi konkretne klase ________________________ © N. Jovanovid, 2010.
14
Kada se napravi objekat klase Pas, on može da se kao argument prosledi bilo kojoj od tih metoda, jer može da se svede naviše ka svakom od tih interfejsa
________________________ © N. Jovanovid, 2010.
15
Nasleđivanje interfejsa Interfejsi mogu da se proširuju pomodu ključne reči extends Interfejsi mogu da proširuju više drugih interfejsa interface Vampir extends OpasnoCudoviste, SmrtonosnoCudoviste{ … }
________________________ © N. Jovanovid, 2010.
16
Razlika između interfejsa i apstraktne klase Interfejsi obezbeđuju jedan oblik višestrukog nasleđivanja jer je mogude implementirati više interfejsa, dok klasa može da nasledi samo jednu klasu Apstraktna klasa može da ima delimičnu implementaciju, zaštidene delove, statičke metode itd., dok su interfejsi ograničeni samo na javne konstante i javne metode bez implementacije ________________________ © N. Jovanovid, 2010.
17