Дерексіз сынып пен бетон сынып
Java және C сияқты танымал қазіргі заманғы объектіге бағытталған бағдарламалау тілдерінің көпшілігі классқа негізделген. Олар класстарды пайдалану арқылы инкапсуляция, мұрагерлік және полиморфизм сияқты объектіге бағытталған тұжырымдамаларға қол жеткізеді. Класстар – нақты дүние объектілерінің абстрактілі көрінісі. Әдіс функцияларын жүзеге асыру деңгейіне байланысты сыныптар нақты немесе дерексіз болуы мүмкін. Нақты класс өзінің барлық әдістерін толығымен жүзеге асырады. Абстрактілі классты кәдімгі (нақты) класстың шектеулі нұсқасы ретінде қарастыруға болады, онда ол ішінара іске асырылған әдістерді қамтуы мүмкін. Әдетте, нақты сыныптар (жай) сыныптар деп аталады.
Бетон класы дегеніміз не?
Әдепкі сынып - нақты сынып. Класс кілт сөзі сыныптарды анықтау үшін пайдаланылады (мысалы, Java-да). Әдетте олар жай сыныптар деп аталады (сын есімсіз). Нақты сыныптар нақты дүние объектілерінің концептуалды көрінісін бейнелейді. Сыныптарда атрибуттар деп аталатын қасиеттер болады. Атрибуттар жаһандық және даналық айнымалылар ретінде жүзеге асырылады. Сыныптардағы әдістер осы сыныптардың әрекетін көрсетеді немесе анықтайды. Класстардың әдістері мен атрибуттары класс мүшелері деп аталады. Әдетте, инкапсуляция атрибуттарды жеке ету арқылы, сол атрибуттарға қол жеткізу үшін пайдаланылатын жалпы әдістерді жасау арқылы қол жеткізіледі. Объект - бұл сынып данасы. Мұрагерлік пайдаланушыға сыныптарды (ішкі сыныптар деп аталатын) басқа сыныптардан (супер сыныптар деп аталады) кеңейтуге мүмкіндік береді. Полиморфизм программалаушыға оның супер класс объектісінің орнына класс объектісін ауыстыруға мүмкіндік береді. Әдетте мәселенің анықтамасында кездесетін зат есімдер бағдарламада тікелей сыныптарға айналады. Сол сияқты етістіктер тәсілдерге айналады. Жалпы, жеке және қорғалған - сыныптар үшін пайдаланылатын әдеттегі қатынас модификаторлары.
Дерексіз класс дегеніміз не?
Абстрактілі сыныптар Abstract кілт сөзі арқылы жарияланады (мысалы, Java,). Әдетте, дерексіз базалық сыныптар (ABC) ретінде белгілі дерексіз сыныптарды құру мүмкін емес (бұл сыныптың данасын жасау мүмкін емес). Сонымен, абстрактілі сыныптар егер бағдарламалау тілі мұрагерлікті қолдайтын болса ғана мағыналы болады (сыныпты кеңейтуден ішкі сыныптарды құру мүмкіндігі). Абстрактілі сыныптар әдетте абстрактілі ұғымды немесе ішінара немесе мүлде орындалмаған нысанды білдіреді. Демек, дерексіз сыныптар еншілес сыныптар алынатын ата-аналық сыныптар ретінде әрекет етеді, осылайша еншілес сынып негізгі сыныптың толық емес мүмкіндіктерін бөліседі және оларды аяқтау үшін функционалдық мүмкіндіктерді қосуға болады.
Дерексіз сыныптарда дерексіз әдістер болуы мүмкін. Абстрактілі сыныпты кеңейтетін ішкі сыныптар осы (тұқым қуалайтын) дерексіз әдістерді жүзеге асыра алады. Егер еншілес сынып барлық осындай абстрактілі әдістерді жүзеге асырса, ол нақты сыныпқа айналады. Бірақ олай болмаса, еншілес сынып та дерексіз сыныпқа айналады. Мұның бәрі бағдарламашы классты Реферат ретінде ұсынғанда, ол сыныптың аяқталмағанын және оның мұрагер ішкі сыныптармен толтырылуы керек элементтері болатынын айтады. Бұл бағдарламалық жасақтаманы әзірлеудегі тапсырмаларды жеңілдететін екі бағдарламашы арасында келісімшарт жасаудың тамаша тәсілі. Мұра алу үшін код жазатын бағдарламашы әдіс анықтамаларын дәл орындауы керек (бірақ, әрине, өзінің іске асыруы болуы мүмкін).
Дерексіз сынып пен нақты сыныптың айырмашылығы неде?
Дерексіз сыныптар әдетте ішінара орындалады немесе жоқ. Екінші жағынан, нақты сыныптар әрқашан өзінің мінез-құлқын толық жүзеге асырады. Нақты сыныптардан айырмашылығы, абстрактілі сыныптарды құру мүмкін емес. Сондықтан абстрактілі сыныптарды пайдалы ету үшін кеңейту керек. Абстрактілі сыныптарда дерексіз әдістер болуы мүмкін, бірақ нақты сыныптарда мүмкін емес. Абстрактілі класс кеңейтілген кезде барлық әдістер (дерексіз және нақты) мұраға алынады. Мұраланған класс кез келген немесе барлық әдістерді жүзеге асыра алады. Егер барлық абстрактілі әдістер орындалмаса, бұл сынып та абстрактілі сыныпқа айналады.