![Abstract Classes vs Interfaces (Java)](https://i.ytimg.com/vi/2aQ9Y7bumts/hqdefault.jpg)
Turinys
Pagrindinis skirtumas
Pagrindinis skirtumas tarp abstrakčios klasės ir sąsajos yra tas, kad „Java“ sąsajos procedūros iš esmės yra abstrakčios ir negali turėti programų. Taigi plačiai tariant, sąsaja iš tikrųjų yra sutartis ir kai mes kalbame apie sąsają, tai reiškia, kad metodai neturi pagrindinio elemento, tai yra tik modelis. Nors abstrakčios klasės iš esmės yra klasės, kurias brangu naudoti. Anotacinės klasės ir sąsaja yra visai kita sąvoka, tai yra du skirtingi dalykai, tačiau kartais jų įgyvendinimas yra gana panašus.
Kas yra abstrakčių klasė?
Programuotojas visiškai nereiškia abstrakčios klasės. Abstrakčioji klasė gali turėti vieną ar kelis abstrakčius metodus. Jie yra naudingi modeliuojant klasių grupavimą ar klasifikavimą. Kol tai vykdoma, programuotojas, pamatęs reikalavimus, supranta, ką reikia sukurti. Abstraktine klase negalima visiškai pasikliauti, nes joje nėra kai kurių dalių. Pagrindinis šio argumento punktas yra tas, kad abstrakti klasė yra griežtai orientuota į objektą, nors ji turi metodo kryptį, bet neturi kūno. Kai mes kalbame apie abstrakčias klases, tarp dviejų klasių yra stiprus ryšys, nes šios klasės yra linkusios įgyti ar paveldėti viena nuo kitos.
Kas yra sąsaja?
Kai mes kalbame apie sąsają, atvirkščiai, pačios sąsajos ir klasės ryšys ar ryšys, reiškiantis sąsają, nėra toks stiprus, kaip abstrakčiose klasėse. „Java“ klasė gali įgyvendinti daug sąsajų, bet gali paveldėti iš vienos abstrakčios klasės. Taigi, tai reiškia, kad kai norite nurodyti daugybę sąveikų vienu metu, sąsaja yra jūsų dalykas. Išskyrus visą šį scenarijų, net jei nenorite, kad API kurį laiką keistųsi, sąsaja yra jums geriausias pasirinkimas. Sąsaja iš tikrųjų yra sutartis tarp dviejų skirtingų objektų. Norėdami sutrumpinti, sąsaja sukasi apie funkcionalumą.
Pagrindiniai skirtumai
- Abstrakti klasė orientuojama į objektą, o sąsaja yra orientuota į funkciją.
- Jei norite, kad API tam tikrą laiką išliktų pastovi, tuomet pasirenkate abstrakčios klasės sąsają.
- Daugybę palikimų galima gauti įvedant kelias sąsajas. Būdamas abstrakčioje klasėje, tu negali gauti kelių paveldėjimų.
- Jei turite vilties, kad ateityje jums reikės įtraukti metodus į savo darbą, pasirenkama abstrakti klasė, o ne sąsaja.
- Anotacija klasė suteikia bendrą bazinės klasės taikymą, bet nieko tokio neįvyksta sąsajoje.
- Sąsajoje visi jūsų įdiegti metodai yra vieši, tačiau abstrakčioje klasėje galite pritaikyti ir kai kuriuos neviešus metodus.
- Konstruktorių nėra sąsajoje, bet jie pasitaiko abstrakčioje klasėje.
- Visiškas abstrakčios klasės narys gali būti statiškas, bet ne prie sąsajos.