Tətbiq edir və Genişləndirir
İmplements və Extends Java proqramlaşdırma dilində tapılan iki açar sözdür və əlavə funksionallığı yeni sinfə ötürmək üçün vasitə təmin edir. Implements açar sözü açıq şəkildə interfeysin həyata keçirilməsi üçün istifadə olunur, Extends açar sözü isə (super) sinifdən miras almaq üçün istifadə olunur. Nəzərə alın ki, varislik və interfeys anlayışları C və VB. NET kimi digər obyekt yönümlü proqramlaşdırma dillərinin əksəriyyətində mövcuddur, lakin onlar bu anlayışları tətbiq etmək üçün müxtəlif sintaksis və ya açar sözlər təklif edirlər. Bu məqalə yalnız Java-da müəyyən edilmiş Tətbiq və Genişləndirici açar sözlərə diqqət yetirir.
Uzanır
Extends açar sözü Java proqramlaşdırma dilində varislik konsepsiyasını həyata keçirmək üçün istifadə olunur. Vərəsəlik, yeni müəyyən edilmiş sinif tərəfindən mövcud sinfin xüsusiyyətlərini və davranışını genişləndirməyə imkan verməklə kodun təkrar istifadəsini təmin edir. Yeni alt sinif (və ya törəmə sinif) super sinfi (və ya ana sinfi) genişləndirdikdə, bu alt sinif super sinfin bütün atributlarını və üsullarını miras alacaq. Alt sinif isteğe bağlı olaraq ana sinifdən miras qalmış davranışı ləğv edə bilər (metodlara yeni və ya genişləndirilmiş funksionallıq təmin edir). Alt sinif Java-da birdən çox super sinfi genişləndirə bilməz. Buna görə də, siz çoxlu varislik üçün genişləndirmələrdən istifadə edə bilməzsiniz. Çoxsaylı mirasa sahib olmaq üçün aşağıda izah edildiyi kimi interfeyslərdən istifadə etməlisiniz.
Tətbiq edir
Implements açar sözü Java proqramlaşdırma dilində sinif tərəfindən interfeysin həyata keçirilməsi üçün istifadə olunur. Java-da interfeys, həmin interfeysi həyata keçirən siniflər tərəfindən həyata keçirilməli olan müqaviləni müəyyən etmək üçün istifadə edilən mücərrəd tipdir. Adətən interfeys yalnız metod imzalarını və daimi bəyannamələri ehtiva edir. Müəyyən bir interfeysi həyata keçirən istənilən interfeys interfeysdə müəyyən edilmiş bütün metodları həyata keçirməli və ya mücərrəd sinif kimi elan edilməlidir. Java-da obyekt istinadının növü interfeys növü kimi müəyyən edilə bilər. Lakin həmin obyekt ya null olmalıdır, ya da həmin xüsusi interfeysi həyata keçirən sinif obyektini saxlamalıdır. Java-da Implements açar sözündən istifadə edərək, bir sinifə birdən çox interfeys tətbiq edə bilərsiniz. İnterfeys başqa interfeysi həyata keçirə bilməz. Bununla belə, interfeys sinfi genişləndirə bilər.
Tətbiqlər və Genişləndiricilər Arasındakı Fərq
Implements və Extends Java proqramlaşdırma dilində sinifə atribut və davranışları miras qoyan mexanizm təmin edən iki açar söz olsa da, onlar iki fərqli məqsəd üçün istifadə olunur. Implements açar sözü müəyyən bir interfeysi həyata keçirmək üçün sinif üçün, Extends açar sözü isə super sinifdən genişlənmək üçün alt sinif üçün istifadə olunur. Sinif interfeysi həyata keçirdikdə, həmin sinif interfeysdə müəyyən edilmiş bütün metodları həyata keçirməlidir, lakin alt sinif super sinfi genişləndirdikdə, o, ana sinifə daxil olan metodları ləğv edə bilər və ya olmaya bilər. Nəhayət, Implements və Extends arasındakı digər əsas fərq ondan ibarətdir ki, bir sinif birdən çox interfeys tətbiq edə bilər, lakin Java-da yalnız bir super sinifdən uzana bilər. Ümumiyyətlə, daha yüksək çeviklik və birləşməni minimuma endirmək imkanı kimi bir neçə səbəbə görə Extends (miras) istifadəsi ilə müqayisədə Tətbiqlərin (interfeyslərin) istifadəsi daha əlverişli hesab olunur. Buna görə də praktikada əsas siniflərdən genişlənməkdənsə interfeysə proqramlaşdırmaya üstünlük verilir.