Насљедство је важан концепт објектно оријентираног програмирања. То пружа начин за објеката да дефинишу међусобне односе. Као што име сугерира, објект може наслиједити карактеристике од другог објекта.
Конкретније, предмет је у стању да своју децу и понашање пренесе на своју децу. Да би наследство могло функционисати, објекти морају имати заједничке карактеристике једна са другом.
Ин Јава, часови се могу узимати из других часова, могу се узимати и други, и тако даље. То је зато што они могу наслиједити карактеристике из класе изнад ње, све до највише класе објеката.
Пример Јава наследства
Рецимо да правимо класу која се зове Хуман која представља наше физичке карактеристике. То је генеричка класа која би могла да вас представља, мене или било кога на свету. Његова држава прати ствари попут броја ногу, броја руку и крвне групе. Има понашања попут јела, спавања и ходања.
Људство је добро за добијање свеукупног смисла за оно што нас све чини истима, али на пример, не може ми рећи о разликама у половима. За то бисмо требали направити два нова типа класе који се зову Мушкарац и Жена. Стање и понашање ове две класе разликоваће се једна од друге на много начина, осим оних које наслеђују од човека.
Дакле, насљеђивање нам омогућава да у своје дијете укључимо стање и понашање родитељске класе. Дечји разред тада може проширити стање и понашања како би одражавао разлике које представља. Најважнији аспект овог концепта који треба запамтити је да је дечија класа специјализованија верзија родитеља.
Шта је Суперкласа?
У односу између два објекта, суперкласа је име које се даје класи из које се наслеђује. Звучи као супер дупер класа, али запамтите да је реч о општијој верзији. Боља имена која се могу користити могу бити основна класа или једноставно надређена класа.
Да бисмо овај пут узели пример из реалнијег света, могли бисмо имати суперкласу која се зове Персон. Његова држава садржи име, адресу, висину и тежину особе, и понаша се попут куповине, кревета и гледања телевизије.
Могли бисмо направити две нове класе које наслеђују од Особе која се зове Студент и Воркер. Они су више специјализоване верзије јер, иако имају имена, адресе, гледају телевизију и одлазе у куповину, имају и карактеристике које се разликују једна од друге.
Радник може имати државу која има назив запослења и место запослења, док студент може да поседује податке о подручју студија и установи учења.
Пример супер класе:
Замислите да дефинишете класу особе:
Особа у јавној класи { }
Проширењем ове класе може се створити нова класа:
Запослени у јавној класи продужује особу. { }
Каже се да је за класу Персон суперкласа класе Емплоиее.
Шта је подразред?
У односу између два објекта, подразред је име које се даје класи која наслеђује од надкласе. Иако звучи мало цртачки, упамтите да је то специјализованија верзија суперкласа.
У претходном примеру су подкласа студент и радник.
Подкласе се такође могу знати као изведени часови, дечији часови или проширени часови.
Колико подразреда могу да имам?
Можете имати онолико подкласа колико желите. Не постоји ограничење колико подкласа може имати суперкласа. Исто тако, не постоји ограничење броја степена наследства. Хијерархија наставе може се градити на одређеном подручју заједничког.
У ствари, ако погледате библиотеке Јава АПИ-ја, видећете много примера наслеђивања. Свака класа у АПИ-јевима наслеђена је из класе која се зове јава.ланг. Објект На пример, сваки пут када користите ЈФраме објект, на крају сте дугог наслеђивања:
јава.ланг. Објект продужио јава.авт. Саставни део. продужио јава.авт. Контејнер. продужио јава.авт. Прозор. продужио јава.авт. Рам. продужено јавак.свинг. ЈФраме.
У Јави, када подразред наслеђује од преткласа, познат је као "проширење" суперкласа.
Да ли се мој подразред може наследити из многих супер класа?
Не. У Јави, подразред може проширити само један суперкласа.
Зашто користити наследство?
Наслеђивање омогућава програмерима да поново употребе код који су већ написали. У примјеру Људске класе, не треба да стварамо нова поља у класи Мушкарац и Жена да бисмо држали крвну групу јер можемо да користимо ону наслеђену из Људске класе.
Друга предност коришћења наслеђивања је та што нам омогућава да третирамо поткласу као да је суперразред. На пример, рецимо да је програм створио више инстанци објеката Мушкарац и Жена. Програм ће можда морати да позове на стање спавања за све ове објекте. Будући да је понашање спавања понашање људског суперкласа, можемо груписати све мушкарчеве и женске објекте заједно и третирати их као људске предмете.