Дерексіз класс пен интерфейс арасындағы айырмашылық

Дерексіз класс пен интерфейс арасындағы айырмашылық
Дерексіз класс пен интерфейс арасындағы айырмашылық

Бейне: Дерексіз класс пен интерфейс арасындағы айырмашылық

Бейне: Дерексіз класс пен интерфейс арасындағы айырмашылық
Бейне: Part 33 - C# Tutorial - Difference between abstract classes and interfaces.avi 2024, Шілде
Anonim

Дерексіз класс пен интерфейс

Дерексіз класс және Интерфейс – Java сияқты көптеген объектіге бағытталған бағдарламалау тілдерінде табылған екі нысанға бағытталған құрылым. Абстрактілі классты кәдімгі (нақты) класстың абстрактілі нұсқасы ретінде қарастыруға болады, ал интерфейсті шартты жүзеге асыру құралы ретінде қарастыруға болады. Абстрактілі класс - инициализацияланбайтын, бірақ кеңейтілуі мүмкін класс. Интерфейс - бұл басқа сыныптармен жүзеге асырылуы керек тип. Java тілінде Abstract класстары Abstract кілт сөзі арқылы жарияланады, ал интерфейс кілт сөзі интерфейсті анықтау үшін пайдаланылады.

Дерексіз сынып дегеніміз не?

Әдетте, дерексіз базалық сыныптар (ABC) деп те белгілі дерексіз сыныптарды құру мүмкін емес (бұл сыныптың данасын жасау мүмкін емес). Сонымен, абстрактілі сыныптар егер бағдарламалау тілі мұрагерлікті қолдайтын болса ғана мағыналы болады (сыныпты кеңейтуден ішкі сыныптарды құру мүмкіндігі). Абстрактілі сыныптар әдетте абстрактілі ұғымды немесе ішінара немесе мүлде орындалмаған нысанды білдіреді. Демек, дерексіз сыныптар еншілес сыныптар алынатын ата-аналық сыныптар ретінде әрекет етеді, осылайша еншілес сынып негізгі сыныптың толық емес мүмкіндіктерін бөліседі және оларды аяқтау үшін функционалдық мүмкіндіктерді қосуға болады.

Дерексіз сыныптарда дерексіз әдістер болуы мүмкін. Абстрактілі сыныпты кеңейтетін ішкі сыныптар осы (тұқым қуалайтын) дерексіз әдістерді жүзеге асыра алады. Егер еншілес сынып барлық осындай дерексіз әдістерді жүзеге асырса, бұл нақты сынып. Бірақ олай болмаса, еншілес сынып та дерексіз сыныпқа айналады. Мұның бәрі бағдарламашы классты Реферат ретінде ұсынғанда, ол сыныптың аяқталмағанын және оның мұрагер ішкі сыныптармен толтырылуы керек элементтері болатынын айтады. Бұл бағдарламалық жасақтаманы әзірлеудегі тапсырмаларды жеңілдететін екі бағдарламашы арасында келісімшарт жасаудың тамаша тәсілі. Мұра алу үшін код жазатын бағдарламашы әдіс анықтамаларын дәл орындауы керек (бірақ, әрине, өзінің іске асыруы болуы мүмкін).

Интерфейс дегеніміз не?

Интерфейс – бұл интерфейсті жүзеге асыратын сыныптармен жүзеге асырылуы тиіс келісім-шартты көрсету үшін пайдаланылатын дерексіз түрі. Интерфейс түйінді сөзі интерфейсті анықтау үшін, ал Implements кілт сөзі интерфейсті класс арқылы жүзеге асыру үшін қолданылады (Java бағдарламалау тілінде). Әдетте, интерфейс тек әдіс қолтаңбаларын және тұрақты мәлімдемелерді қамтиды. Белгілі бір интерфейсті жүзеге асыратын кез келген интерфейс интерфейсте анықталған барлық әдістерді орындауы керек немесе абстрактілі класс ретінде жариялануы керек. Java тілінде нысан сілтемесінің түрін интерфейс түрі ретінде анықтауға болады. Бірақ бұл нысан не нөл болуы керек немесе сол нақты интерфейсті жүзеге асыратын сыныптың нысанын ұстауы керек. Java тілінде Implements кілт сөзін пайдалану арқылы бір сыныпқа бірнеше интерфейстерді енгізуге болады.

Абстрактілі класс пен интерфейстің айырмашылығы неде?

Дерексіз сыныптар әдетте абстрактілі тұжырымдаманы немесе ішінара немесе мүлде орындалмаған нысанды білдіреді. Екінші жағынан, интерфейс класстар арқылы жүзеге асырылуы тиіс келісім-шартты көрсету үшін пайдаланылатын дерексіз түрі болып табылады. Абстрактілі сыныптар мұраға алынуы (немесе кеңейтілуі) керек, ал интерфейстер жүзеге асырылуы керек. Абстрактілі сыныптар абстрактілі әдістерді қамтуы мүмкін, ал интерфейсте тек дерексіз әдістер болуы керек. Абстрактілі сыныптар кез келген айнымалыларды қамтуы мүмкін, бірақ интерфейстер тек тұрақтыларды анықтай алады. Класс бірнеше абстрактілі сыныптан мұра ала алмайды, бірақ бірнеше интерфейстерді жүзеге асыра алады. Интерфейс басқа интерфейсті жүзеге асыра алмайды. Дегенмен интерфейс сыныпты кеңейте алады.

Ұсынылған: