Мұрагерлік. Мұрагерлік – С++ тіліндегі объектіге бағытталған программалаудың басты механизмдерінің бірі. Оның көмегімен жалпыдан жекеге ауыса отырып өте күрделі кластарды құруға болады, сонымен қатар қорытынды кластардан айрықшаланатын жаңа кластарды өсіруге болады. Жаңа класты жобалай отырып, алдын-ала оның объектілері қандай анағұрлым жалпы ерекшеліктерге ие болу керектігін анықтау және ұқсас дайын кластың бар жоқтығын тексеру қажет. Басқаша айтқанда, басында қайта өндіретін класс жоспарын «ірі көріністермен» құрған жөн, ал кейін бір уақытта жаңа қасиеттерді ала отырып, тәртіп пен қасиеттерді (яғни мүше деректер мен класс әдістері) мұраға алатын жаңа кластарды құрылған класс негізінде құра отырып, рет-ретімен бөлшектенуге көшеміз. Түрлі класс объектілері мен кластардың өздері алдын-ала құрастырған кластар иерархиясына сай келетін объектілер иерархиясы құрылған кезде мұрагерлік қатынасында бола алады. Бір класс екінші класс мұрагері болғанда жазбаның келесі негізгі пішіні қолданылады: { class_ класс_ аты_ as базалық_ класс_ аты _ туынды { туынды класының анықтамасы Мұндағы as – рұқсат ету спецификаторы ( access specifier) базалық класс элементтері ( base class) туынды класқа (derived class) қалай мұрагер болатынын анықтайды. Егер as public болса, онда барлық ашық мүшелері туындысы да ашық болып қалады. Егер as private шешуші сөзі болса, онда базалық кластың барлық мүшелері туынды класта жабыққа айналады. Екі жағдайда да базалық кластың барлық private мүшелері туынды класта қалай мұрагер болуына тәуелсіз, жабық және рұқсатсыз болып қалады. 24 Егер as private болса, онда базалық кластың ашық мүшелері туынды класта жабық болуына қарамастан олар туынды кластың функция мүшелері үшін рұқсат етілген болып қалатынын ескерген жөн. Техникалық жағынан рұқсат ету спецификаторы міндетті емес. Егер ол көрсетілмеген туынды класс class шешуші сөзімен анықталса, онда базалық класс struct қызметші сөзімен үнсіздік бойынша ашық түрде мұра болады.
Суперкласс және ішкі кластар. Әдістерді қайта анықтау. Java синтаксисінде кеңейту ұрпақтың нені кеңейтетінін баса көрсетеді
прогениторда орнатылған - жаңа өрістерді, әдістерді қосады, мінез-құлықты қиындатады. (Бірақ мұның бәрі сыныпты мамандандырылған, жалпылама етеді).Бұйра жақшалардың келесісі сыныпты жүзеге асыру болып табылады - оның өрістері мен әдістерінің сипаттамасы. Сағат Бұл жағдайда тегі бар деректер өрістері мен әдістерін ұрпақта сипаттаудың қажеті жоқ - олар
мұра болып табылады. Алайда, егер ата-аналық әдісті енгізу бізге сәйкес келмесе, онда ұрпақ класы оны басқаша жүзеге асыра алады. Бұл жағдайда әдіс қажет ұрпақ класында жариялау және енгізу. Сонымен қатар, ұрпақта сіз орнатуға болады жаңа деректер өрістері мен бабаларда жоқ әдістер.
Қолдануға болатын модификаторлар:
- public – жалпыға ортақ (қоғамдық) көріну деңгейін белгілейтін модификатор. Егер ол жоқ болса, пакеттік қатынас деңгейі жұмыс істейді - сынып тек қол жетімді бір пакеттің элементтері.
- абстракт - класстың дерексіз екенін көрсететін модификатор, яғни
оның даналары (нысандары) жоқ. Сынып рефератын міндетті түрде жариялаңыз кез келген әдіс дерексіз деп жарияланған жағдайда.
- final - бұл сыныптың соңғы екенін көрсететін модификатор
Оның ұрпақтары болмайды.
Осылайша, туынды класс анықтамасы келесі форматқа ие:
Модификаторлар класы ClassName extensionsParentName {
Өрістерді орнату;
Ішкі бағдарламаларды орнату – класс әдістері, объект әдістері, конструкторлар } Бұл пішім интерфейстерді іске асырмайтын сыныптарға жатады. -мен жұмыс істей интерфейстерге жеке бөлім арналады.Мысал ретінде бұрын сипатталған иерархияның сыныптары үшін мұраны қарастырыңыз сандар. Қарапайымдылық үшін біз сурет иерархияның негізгі класы болатын опцияны таңдаймыз,Нүкте - оның ұрпағы, ал Шеңбер - Нүктенің ұрпағы (яғни, бұл «оқ»).
... Еске түсіру сынып атауларының бас әріптен басталуы әдетке айналғанын.
Біз Figure класын дерексіз ретінде сипаттаймыз - мұндай типтегі объектілерді құру мүмкін емес болжалды, өйткені нақты түрі көрсетілмеген фигура шын мәнінде таза
абстракция. Дәл сол себепті көрсету және жасыру әдістері ретінде жарияланады реферат. Сондай-ақ, егер сыныптағы кем дегенде бір әдіс абстрактілі болса, бұл сынып абстрактілі деп жариялануы керек.