Іске асырады және кеңейтеді
Implements және Extends - Java бағдарламалау тілінде табылған екі кілт сөз, ол қосымша функцияларды жаңа сыныпқа тасымалдау құралын береді. Implements кілт сөзі интерфейсті жүзеге асыру үшін анық пайдаланылады, ал Extends кілт сөзі (супер) сыныптан мұраға алу үшін пайдаланылады. Мұрагерлік және интерфейстер ұғымдары C және VB. NET сияқты басқа нысанға бағытталған бағдарламалау тілдерінің көпшілігінде бар екенін ескеріңіз, бірақ олар осы ұғымдарды қолдану үшін әртүрлі синтаксис немесе кілт сөздерді ұсынады. Бұл мақала тек Java тілінде анықталған Implementments және Extends кілт сөздеріне арналған.
Ұзартады
Extends кілт сөзі Java бағдарламалау тілінде мұрагерлік тұжырымдаманы жүзеге асыру үшін пайдаланылады. Мұрагерлік жаңадан анықталған сынып арқылы бар сыныптың қасиеттері мен әрекетін кеңейтуге рұқсат беру арқылы кодты қайта пайдалануды қамтамасыз етеді. Жаңа ішкі сынып (немесе туынды сынып) супер классты (немесе ата-аналық сыныпты) кеңейткенде, бұл ішкі сынып супер класстың барлық атрибуттары мен әдістерін иеленеді. Ішкі сынып ата-аналық сыныптан мұраланған мінез-құлықты (әдістерге жаңа немесе кеңейтілген функционалдылықты қамтамасыз ету) қосымша анықтай алады. Ішкі сынып Java тіліндегі бірнеше супер класстарды кеңейте алмайды. Сондықтан бірнеше мұраға арналған кеңейтімдерді пайдалана алмайсыз. Бірнеше мұраға ие болу үшін төменде түсіндірілгендей интерфейстерді пайдалану керек.
Орындады
Java бағдарламалау тіліндегі Implements кілт сөзі класс интерфейсін іске асыру үшін пайдаланылады. Java тіліндегі интерфейс – бұл интерфейсті жүзеге асыратын сыныптармен жүзеге асырылуы тиіс келісім-шартты көрсету үшін пайдаланылатын дерексіз түрі. Әдетте интерфейс тек әдіс қолтаңбаларын және тұрақты мәлімдемелерді қамтиды. Белгілі бір интерфейсті жүзеге асыратын кез келген интерфейс интерфейсте анықталған барлық әдістерді орындауы керек немесе абстрактілі класс ретінде жариялануы керек. Java тілінде нысан сілтемесінің түрін интерфейс түрі ретінде анықтауға болады. Бірақ бұл нысан не нөл болуы керек немесе сол нақты интерфейсті жүзеге асыратын сыныптың нысанын ұстауы керек. Java тілінде Implements кілт сөзін пайдалану арқылы бір сыныпқа бірнеше интерфейстерді енгізуге болады. Интерфейс басқа интерфейсті жүзеге асыра алмайды. Дегенмен интерфейс сыныпты кеңейте алады.
Орындау және кеңейту арасындағы айырмашылық
Implementments және Extends - Java бағдарламалау тіліндегі сыныпқа атрибуттар мен мінез-құлық мұралау механизмін қамтамасыз ететін екі кілт сөз болғанымен, олар екі түрлі мақсатта қолданылады. Implements кілт сөзі белгілі бір интерфейсті жүзеге асыру үшін сынып үшін пайдаланылады, ал Extends кілт сөзі супер класстан кеңейту үшін қосалқы сынып үшін пайдаланылады. Класс интерфейсті жүзеге асырған кезде, бұл сынып интерфейсте анықталған барлық әдістерді жүзеге асыруы керек, бірақ ішкі сынып супер классты кеңейткенде, ол ата-аналық сыныпқа енгізілген әдістерді қайта анықтауы немесе жоққа шығаруы мүмкін. Соңында, Implementments және Extends арасындағы тағы бір негізгі айырмашылық мынада: сынып бірнеше интерфейстерді жүзеге асыра алады, бірақ ол Java-дағы бір супер класстан ғана кеңейте алады. Жалпы алғанда, Implements (интерфейстерді) пайдалану Extends (мұрагерлік) пайдаланумен салыстырғанда жоғары икемділік және біріктіруді азайту мүмкіндігі сияқты бірнеше себептерге байланысты қолайлы болып саналады. Сондықтан тәжірибеде базалық сыныптарды кеңейтуден гөрі интерфейске бағдарламалау артықшылық береді.