- Карактеристике наслеђивања
- Хијерархија
- Полиморфизам
- Врсте наследства
- Јединствено наслеђивање
- Наслеђивање на више нивоа
- Хијерархијско наслеђивање
- Хибридно наслеђивање
- Вишеструко наслеђивање
- Врсте насљеђивања из основне класе
- Јавно наслеђивање
- Заштићено наследство
- Приватно наслеђивање
- Примери
- Пример Питхон-а
- Пример у Ц ++
- Референце
Наслеђивања у објекту - оријентисаног програмирања је начин да се организује објекте у хијерархији од општег ка специфичне. То је гадгет који се користи за ширење класе у другу класу, чувајући аналогно извршење.
У већини објектно оријентисаних језика заснованих на класи, објект створен насљеђивањем, зван подређени објект, добија сва својства и понашања родитељског објекта.
Једноставан доказ наслеђа у оријентацији објекта. Извор: Плуке / ЦЦ0 Цреативе Цоммонс ЦЦ0 1.0 Универсал Публиц Домаин
Стога је квалитет који представља однос између различитих класа. Наслеђивање омогућава да класа има исто понашање као и друга класа и да то понашање прошири или прилагоди тако да обезбеди посебну акцију за специфичне потребе.
Насљеђивање може помоћи при представљању објеката који имају одређене разлике и неке сличности у начину рада. Све функционалности заједничких објеката можете ставити у основну класу, а затим дефинисати једну или више поткласа с властитом прилагођеном функцијом.
Карактеристике наслеђивања
Насљеђивање је једна од кључних карактеристика објектно оријентисаног програмирања која се користи за дефинисање нове класе из постојећих класа.
Односно, нове класе се могу извести из постојећих основних класа, додајући нове функције. Не морате да пишете испочетка. Стога насљеђивање пружа начин да се лако поново користи постојећи код.
Ако већ имате класу која ради готово све што желите, можете креирати поткласу у којој је неко његово понашање делимично надјачано или је можда додата нека нова функционалност.
Деривирана класа насљеђује све методе основне класе, осим сљедећих:
- Конструктори, деструктори и конструктори копирања основне класе.
- Оператори преоптерећени из основне класе.
- Функције прилагођене основној класи.
Хијерархија
Као што породично стабло чини, насљеђивање служи да формира хијерархију класа. Важно је напоменути да ће атрибути одређени за основну класу бити аутоматски присутни у изведеној класи. Такође, методе за основну класу ће радити за деривате.
Каже се да је за класу подразред класе из које наслеђује. Са друге стране, ова класа ће бити ваш суперкласа. Највише генеричка класа може се назвати основном класом, јер је она у основи хијерархије.
Полиморфизам
Наслеђивање је врло популарно у неким језицима са статичким типовима, јер омогућава програмеру да избегне нека ограничења статичког типа.
Објекат који наслеђује од другог објекта сматра се подврстама тог објекта. Пример могу бити предмети „инструктор“ и „студент“, од којих сваки наслеђује од „особе“.
Ако су инструктор и студент истог типа особе, можете написати функцију која тип особе прихвата као параметар и која ради на предметима инструктора и ученика, јер су оба насљедника особе.
Врсте наследства
Јединствено наслеђивање
Када изведена класа насљеђује својства и понашање поједине основне класе. Односно, једна класа се протеже на само једну другу класу.
Наслеђивање на више нивоа
Односи се на гадгет где можете наследити изведену класу, чинећи ову изведену класу основном класом за нову класу. То јест, настаје када се изведена класа креира из друге изведене класе.
Хијерархијско наслеђивање
У овом наслеђивању многи подкласи наслеђују се из једне класе. То јест, дешава се када једну базну класу наслеђује више од једне изведене класе.
Хибридно наслеђивање
То је резултирајуће наследство када се било које од три претходна наследства комбинује (једно, хијерархијско и вишеслојно).
Вишеструко наслеђивање
То одговара слици насљеђивања када класа насљеђује више од једног суперкласа. Недостатак ове врсте насљеђивања је тај што ће изведена класа морати да поднесе зависност коју има о двије основне класе.
Са друге стране, ова врста наследства омогућава програмерима да граде класе које комбинују аспекте више класа и њихове одговарајуће хијерархије.
Врсте насљеђивања из основне класе
Јавно наслеђивање
Када је класа изведена из јавне основне класе, јавни припадници основне класе постају јавни чланови изведене класе, а заштићени припадници основне класе постају заштићени припадници изведене класе.
Приватним члановима супер класе никада неће бити доступно директно из изведене класе, већ им се може приступити путем позива грађанима и заштићеним припадницима основне класе.
Заштићено наследство
Када се створи класа која наследи од заштићеног суперкласа, и јавност и заштићени чланови овог суперкласа постаће заштићени чланови изведене класе.
Приватно наслеђивање
Када се подразред створи из приватног преткласа, јавни и заштићени чланови овог суперкласа постаће приватни чланови подкласа.
Примери
Пример Питхон-а
Да покажемо како функционише принцип наследства, узећемо роботе или бољу класу робота на програмском језику Питхон. Да бисте то учинили, биће одређена класа која се зове РоботМедицо (ПхисицианРобот), а која је изведена из супер класе Робот.
Ако погледате код класе РоботМедицо, можете видети да у овој класи нису дефинисани ниједан атрибут или метода.
Пошто је класа РоботМедицо поткласа Робота, у овом случају наслеђује и методе __инит__ и саи_хи. Наслеђивање ових метода значи да се могу користити као да су дефинисане у класи РоботМедицо.
Када се створи инстанца РоботМедицо, функција __инит__ ће такође створити атрибут имена. Метода саи_хи може се примијенити на објект и на РоботМедицо, као што се може видјети у резултату претходног кода.
Пример у Ц ++
Класа може наслиједити више класа, што значи да може наслиједити податке и функције из више суперкласа. Да бисте дефинисали изведену класу, користите листу деривације класа да бисте одредили основне класе.
Листа деривације класе у Ц ++ именује једну или више основних класа и има следећи облик: класа изведена класа: спецификација приступа основна класа, где је спецификатор приступа јавни, заштићени или приватни, а основна класа је име претходно дефинисане класе. Ако се не користи спецификатор приступа, подразумевано се узима приватно.
Суперкласа "Облик" и изведена класа "Правокутник" могу се сматрати на следећи начин:
Када се горњи код састави и изврши, појављује се следећи излаз: "Укупна површина: 35".
Референце
- Даве Браунсцхвеиг (2020). Наслеђивање и полиморфизам. Ребус Цоммунити. Преузето са: пресс.ребус.цоммунити.
- Питхон курс (2020). Наслеђивање. Преузето са: питхон-цоурсе.еу.
- Ментор података (2020). Р Наслеђивање Преузето из: датаментор.ио.
- Туториалс Поинт (2020). Ц ++ наследство. Преузето са: туториалспоинт.цом.
- Нето информације (2020). Различите врсте наследства. Преузето са: нет-информатионс.цом.