Kas yra sąsajos paveldėjimas?

Sąsajos paveldėjimas yra tam tikrų kompiuterių kalbų mechanizmas, kai tam tikras funkcijas paveldi klasė, o tada ta konkreti klasė turi pateikti tų funkcijų įgyvendinimą, kad ji būtų baigta. Sąsajos egzistuoja tik tam tikrose objektinio programavimo kalbose. Jie gali būti naudojami imituojant daugialypį paveldėjimą, iš tikrųjų neleidžiant klasei daugintis, nes paprastai nėra jokių apribojimų sąsajų, iš kurių klasė gali paveldėti, skaičius. Be neįgyvendintų metodų, sąsajose taip pat gali būti viešųjų konstantų.

Sąsajos paveldėjimo atveju objektas, kuris paveldi metodų šaknis ir konstantas, yra laikomas sąsajos objekto tipu. Taigi, jei X klasė paveldėjo iš Y sąsajos, bet kuris X klasės egzempliorius taip pat būtų Y klasės egzempliorius. Tai tampa sudėtingesnė, kai klasės sąsajos paveldėjimas apima daugiau nei vieną atskirą sąsają. Kiekvienai papildomai paveldėtai sąsajai gauta klasė gali būti teisėtai naudojama kaip kiekvienos iš jų pavyzdys. Jei klasė paveldėjo iš dešimties skirtingų sąsajų, tos klasės objektai gali būti naudojami kaip vienuolikos skirtingų objektų, įskaitant save, pavyzdys.

Toks sudėtingas paveldėjimas nėra dažnai būtinas. Sąsajos paveldėjimas naudojamas siekiant užtikrinti, kad klasė turėtų tam tikrą būtinų veiksmų rinkinį, ir ši elgsena leidžia jai atlikti įvairias funkcijas, kurių ji kitaip negalėtų atlikti. Dažnas to pavyzdys yra „Java“ „ActionListener“ sąsaja, kuriai reikia, kad klasė įgyvendintų tik vieną konkretų metodą. Sėkmingas šio metodo įgyvendinimas leidžia vartotojui valdyti mygtukus, meniu elementus ar bet kurį kitą lango objektą klasėje, jei pageidaujama. Sąsajos paveldėjimas yra gana paprastas būdas pridėti sudėtingų funkcijų prie klasės, nesijaudinant dėl ​​sudėtingiausių paveldėjimo problemų.

Vienas didžiausių sąsajos paveldėjimo pranašumų yra tai, kad jis leidžia naudoti konkrečius objektus bendra prasme. Kadangi klasė, kuri įgyvendina sąsają, yra tos sąsajos egzempliorius, ji gali būti naudojama bet kur, kur reikalingas tos sąsajos egzempliorius. Pavyzdžiui, jei klasė A įgyvendina C klasę, o klasė B taip pat įgyvendina klasę C, jei metodas kaip parametrą pasirenka C klasės egzempliorių, A klasės egzempliorius arba B klasės egzempliorius būtų priimtinas naudoti parametras. . Sąsajos negali būti sukurtos atskirai, nes jos nėra baigtos, todėl niekada nebūtų objekto, kuris būtų tik C klasės pavyzdys kaip parametras.