Објектно оријентисано програмирање (ООП) обично се користи за развој софтвера. Многи језици програмирања подржавају објектно оријентисано програмирање. Објектно оријентисано програмирање је методологија за дизајн програма користећи класе и објекте. Класа у ООП-у је нацрт за креирање објекта. Класа има својства и методе. Објект је инстанца класе. ООП садржи четири стуба као што су наследност, полиморфизам, апстракција и инкапсулација. Овај чланак говори о разлици између полиморфизма и наследства у ООП-у. Тхе кључна разлика између полиморфизма и наследства ООП-а је то Полиморфизам је способност објекта да се понаша на више начина, а наслеђивање је да створи нову класу користећи својства и методе постојеће класе.
1. Преглед и кључне разлике
2. Шта је полиморфизам у ООП-у
3. Шта је наслеђивање у ООП-у
4. Сличности између полиморфизма и наследства у ООП-у
5. Упоредно упоређивање - Полиморфизам и наслеђивање у ООП-у у табеларном облику
6. Резиме
Полиморфизам означава више облика. Један објект може имати више понашања. Полиморфизам се може поделити у две категорије. Они су преоптерећени и надјачани.
Погледајте доњи програм написан на Јави.
Слика 01: Преоптерећење
Према горе наведеном програму, креира се објект типа А. Када зовете обј.сум (); дат ће излаз везан за методу сум (). Када зовете обј.сум (2,3); даће излаз који се односи на суму (инт а, инт б). Може се приметити да исти објект има различита понашања у зависности од ситуације. Када постоји више метода са истим именом, али са различитим параметрима, зна се као преоптерећење. Такође је позната и као статичко везивање или саставити полиморфизам времена.
Друга врста полиморфизма је превладавајући. Погледајте доњи програм написан на Јави.
Слика 02: Превладавање
Према горе наведеном програму, постоји метода приказа () у класи А. Класа Б се протеже од класе А. Према томе, све методе у класи А су доступне у класи Б. То је наследство. Концепт наслеђивања је касније описан.
Класа Б такође има исту методу приказа (). Приликом креирања објекта типа А и позивања методе приказа, излаз ће дати Б. Метода приказа класе А превладава методом приказа класе Б. Дакле, излаз је Б.
Када постоје методе са истим именом и истим параметрима, али у две различите класе, а повезане су са наследством, познато је као превладавање. Такође је позната и као Касно везивање, динамичко везивање, полиморфизам извођења. Преоптерећење и прегласавање називамо полиморфизмом. То је главни концепт објектно оријентисаног програмирања.
Погледајте доњи програм написан на Јави.
Слика 03: Пример наследства
Према горе наведеном програму, класа А има суму метода (), а класа Б методу суб ().
Метода сума () класе А може се користити у класи Б помоћу кључне речи ектенс. Поновна употреба својстава и метода у постојећој класи да би се створила нова класа позната је под називом Наслеђивање. Чак ни не постоји метода сум () у класи Б; наслеђује се од класе А. Наслеђивање је корисно за поновну употребу кода. Старија класа се зове основна класа, суперкласа или родитељска класа. Деривирана класа назива се подразред или дечји разред.
Постоје различите врсте наследства. То су наслеђивање на једном нивоу, наследство на више нивоа, вишеструко наслеђивање, хијерархијско наследство и хибридно наследство.
У Сингле Инхеританце постоји једна супер класа и једна подкласа. Ако је класа А супер класа, а класа Б подкласа, сва својства и методе класе А могу бити доступне класи Б. Постоји само један ниво; стога се назива насљеђивањем на једном нивоу.
У наслеђивању на више нивоа постоје три нивоа класе. Средња класа наслеђује од супер класе. Под класа наслеђује од средње класе. Ако постоје три класе као А, Б и Ц и А је супер класа, а Б је средња класа. Тада Б наслеђује од А, а Ц наслеђује од Б, то је наследство на више нивоа.
У Мултипле Инхеританце постоји много супер класа и једна подкласа. Ако постоје три супер класе које се називају А, Б, Ц и Д је подкласа, тада класа Д може да наследи од А, Б и Ц. Вишеструко наслеђивање је подржано у програмском језику Ц ++. Није подржан у програмским језицима као што су Јава или Ц #. Интерфејси се користе за имплементацију вишеструког насљеђивања на овим језицима.
Ако постоје класе које се називају А као супер класе и Б, Ц су подкласе, те подкласе могу наследити својства и методе класе А. Та врста наслеђивања позната је као хијерархијско наслеђивање.
Постоји још један посебан тип наслеђивања који је познат као хибридно наследство. То је комбинација вишеслојног и вишеструког наследства. Ако су А, Б, Ц и Д класе и Б наслеђује од А, а Д наслеђује и од Б и Ц, онда је то хибридно наследство.
Полиморфизам и наслеђивање у ООП-у | |
Полиморфизам је способност објекта да се понаша на више начина. | Наслеђивање је креирање нове класе коришћењем својстава и метода постојеће класе. |
Употреба | |
Полиморфизам се користи за објекте којима се може позвати који облик метода је у току и током извршења. | Наслеђивање се користи за поновну употребу кода. |
Имплементација | |
Полиморфизам се примењује у методама. | Наслеђивање се примењује у часовима. |
Категорије | |
Полиморфизам се може поделити на преоптерећење и преоптерећење. | Наслеђивање се може поделити на једнонаменско, вишеслојно, хијерархијско, хибридно и вишеструко наследство. |
Полиморфизам и насљеђивање главни су појмови у објектно оријентираном програмирању. Разлика између полиморфизма и наследства у ООП-у је у томе што је полиморфизам уобичајено сучеље вишеструких облика, а наслеђивање је да се створи нова класа користећи својства и методе постојеће класе. Оба концепта се широко користе у развоју софтвера.
Можете преузети ПДФ верзију овог чланка и користити је за оффлине употребу према напомени. Молимо преузмите ПДФ верзију овде. Разлика између полиморфизма и наследства у ООП-у