Java (програмски језик) — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
Нема описа измене
Ред 196:
Кључна реч ''-{extends}-'' се користи за прављење нове класе, која се изводи из неке постојеће. Постојећа класа назива се наткласа или родитељска, а нова класа поткласа или класа дете. <ref>[https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html Наслеђивање]</ref>
 
Поткласе имају више функционалности од својих наткласа, нпр. када бисмо у класи Employee дефинисали класу Manager(користећи кључну реч ''-{extends}-''), класа Manager би [енкапсулација | енкапсулирала] више података и имала више функционалности од своје наткласе. У класи Manager бисмо додатно дефинисали нпр. поље које чува вредност бонуса, као и методу setBonus за подешавање његове вредности. Ако смо инстанцирали објекат класе Маnager, можемо употребити и методу setBonus. Међутим, уколико смо инстанцирали објекат класе Еmployee, не можемо употребити методу setBonus - ова метода се не налази међу методама које су дефинисане у класи Employee. Међутим, методе које су дефинисане у класи Еmployee, могу се користити са објектима класе Маnager. Мада те методе нису експлицитно дефинисане у класи Маnager, оне се аутоматски наслеђују из наткласе Еmployee. Исто важи и за поља дефинисана у наткласи, сваки објекат класе Маnager има поља дефинисана у наткласи Еmployee. У суштини, кад се дефинише поткласа извођењем из њене наткласе, треба само уочити разлику између поткласе и наткласе. Најопштије методе треба стављати у наткласе, а специфичније методе, које су више специјализоване, треба смештати у поткласе.
 
Генерално, издвајање опште функционалности њеним померањем у наткласе је уобичајено за [објектно оријентисано програмирање]. Међутим, метода класе Маnager нема директан приступ приватним пољима наткласе. Уколико методе класе Manager желе да приступе тим приватним пољима, оне морају да користе јавне методе класе Еmployee. Да бисмо назначили да желимо да позовемо методу наткласе, а не текуће класе, користимо специјалну реч ''-{super}-''.
Наслеђивање не треба да се заустави на извођењу само једног нивоа класа. На пример, можемо имати класу Executive која наслеђује класу Маnager.