Santrauka „Klasė ir sąsaja“
Anotacija „Klasė“ir „Sąsaja“yra du objektiniai objektai, rasti daugelyje objektų orientuotų programavimo kalbų, tokių kaip „Java“. Abstrakčią klasę galima laikyti abstrakčia taisyklingos (konkrečios) klasės versija, o sąsaja - sutarties vykdymo priemone. Santrauka yra klasė, kurios negalima inicijuoti, tačiau ją galima pratęsti. Sąsaja yra tipas, kurį turi įdiegti kitos klasės. „Java“sistemoje abstrakčios klasės yra deklaruojamos naudojant abstraktų raktinį žodį, o sąsajos apibrėžimui naudojamas sąsajos raktinis žodis.
Kas yra abstrakti klasė?
Paprastai abstrakčių klasių, dar vadinamų abstrakčiomis bazinėmis klasėmis (ABC), negalima paruošti (negalima sukurti tos klasės egzemplioriaus). Taigi, abstrakčios klasės yra prasmingos turėti tik tuo atveju, jei programavimo kalba palaiko paveldėjimą (galimybę kurti poklasius pratęsiant klasę). Abstraktios klasės paprastai atspindi abstrakčią sąvoką ar esmę, iš dalies arba visai neįgyvendinant. Todėl santraukos klasės veikia kaip tėvų klasės, iš kurių gaunamos vaikų klasės, kad vaikų klasė pasidalintų nepilnomis tėvų klasės ypatybėmis, o funkcionalumas gali būti pridėtas, kad jas būtų galima užbaigti.
Santraukos klasėse gali būti abstrakčių metodų. Abstraktės klasės pratęsimo poklasiai gali įgyvendinti šiuos (paveldėtus) abstrakčius metodus. Jei vaikų klasė įgyvendina visus tokius abstrakčius metodus, tai yra konkreti klasė. Bet jei taip nėra, vaikų klasė taip pat tampa abstrakčia klase. Visa tai reiškia, kad kai programuotojas skiria klasę kaip santrauką, ji sako, kad klasė bus neišsami ir ji turės elementų, kuriuos reikia užpildyti paveldėtuose poklasiuose. Tai puikus būdas sukurti dviejų programuotojų sutartį, kuri supaprastina programinės įrangos kūrimo užduotis. Programuotojas, kuris rašo kodą paveldėti, turi tiksliai laikytis metodo apibrėžimų (bet, žinoma, gali turėti savo diegimą).
Kas yra sąsaja?
Sąsaja yra abstraktus tipas, naudojamas nurodant sutartį, kurią turėtų įgyvendinti tos sąsajos įgyvendinančios klasės. Sąsajos raktinis žodis naudojamas sąsajai apibrėžti, o „Implements“raktinis žodis naudojamas sąsajos įgyvendinimui klasėje („Java“programavimo kalba). Paprastai sąsajoje bus tik metodo parašai ir nuolatinės deklaracijos. Bet kuri sąsaja, įgyvendinanti tam tikrą sąsają, turėtų įgyvendinti visus sąsajoje apibrėžtus metodus arba būti deklaruojama kaip abstrakti klasė. „Java“objekto nuorodos tipą galima apibrėžti kaip sąsajos tipą. Bet tas objektas turi būti arba nulinis, arba turėtų turėti klasės objektą, kuris įgyvendina tą konkrečią sąsają. Naudodami „Java“raktinį žodį „Implements“, galite įdiegti kelias sąsajas į vieną klasę.
Koks skirtumas tarp abstrakčios klasės ir sąsajos?
Abstraktios klasės paprastai atspindi abstrakčią koncepciją arba esmę, iš dalies arba be jokio įgyvendinimo. Kita vertus, sąsaja yra abstraktus tipas, naudojamas nurodant sutartį, kurią turėtų įgyvendinti klasės. Abstraktios klasės turėtų būti paveldimos (arba išplėstos), o sąsajos turėtų būti įdiegtos. Abstrakčiose klasėse gali būti abstrakčių metodų, o sąsajoje - tik abstraktūs metodai. Anotacinėse klasėse gali būti bet kokie kintamieji, tačiau sąsajos gali apibrėžti tik konstantas. Klasė negali paveldėti iš daugiau nei vienos abstrakčios klasės, tačiau gali įdiegti kelias sąsajas. Sąsaja negali įdiegti kitos sąsajos. Tačiau sąsaja gali išplėsti klasę.