Skirtumas tarp abstrakčios klasės ir paveldėjimo

Anotacija Klasė prieš paveldėjimą

Santrauka klasė ir Paveldimumas yra dvi svarbios į objektą orientuotos sąvokos, aptinkamos daugelyje objektinio programavimo kalbų, pavyzdžiui, „Java“. Abstrakti klasė gali būti laikoma abstrakčia įprastos (konkrečios) klasės versija, o Paveldėjimas leidžia naujoms klasėms pratęsti kitas klases. Anotacija yra klasė, kurios negalima inicijuoti, tačiau ją galima pratęsti. Taigi abstrakčiosios klasės turi prasmę tik tuo atveju, jei programavimo kalba palaiko paveldėjimą. „Java“ sistemoje „Abstract“ klasės deklaruojamos naudojant „Abstract“ raktinį žodį, o „Extends“ raktinis žodis naudojamas paveldėjimui iš (super) klasės.

Kas yra abstrakčių klasė?

Paprastai abstrakčiosios klasės, taip pat žinomos kaip „Abstract Base Classes“ (ABC), negali būti realizuotos (tos klasės egzemplioriaus sukurti negalima). Taigi abstrakčiosios klasės turi prasmę tik tuo atveju, jei programavimo kalba palaiko paveldėjimą (galimybė kurti poklasius pratęsiant klasę). Abstrakčios klasės paprastai reiškia abstrakčią sąvoką ar subjektą, iš dalies arba visai neįdiegtus. Todėl abstrakčios klasės veikia kaip tėvų klasės, iš kurių išvedamos vaikų klasės, kad vaikų klasė pasidalintų neišsamiomis tėvų klasės ypatybėmis, ir, norint jas papildyti, gali būti pridedamos funkcijos.

Abstrakčių klasėse gali būti abstrakčių metodų. Poklasiai, praplečiantys abstrakčią klasę, gali įgyvendinti šiuos (paveldėtus) abstrakčių 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 paskiria klasę kaip santrauką, ji sako, kad klasė bus neišsami ir joje bus elementų, kuriuos turi užpildyti paveldintys poklasiai. Tai puikus būdas sudaryti sutartį tarp dviejų programuotojų, o tai supaprastina programinės įrangos kūrimo užduotis. Programuotojui, rašančiam kodą paveldėti, reikia tiksliai laikytis metodo apibrėžimų (bet, žinoma, jis gali turėti savo įgyvendinimą).

Kas yra paveldimumas?

Paveldimumas yra į objektą orientuota sąvoka, leidžianti naujoms klasėms pratęsti kitas klases. Išplečiamas raktinis žodis naudojamas paveldėjimo koncepcijai įgyvendinti „Java“ programavimo kalboje. Paveldėjimas iš esmės suteikia galimybę pakartotinai naudoti kodą, nes leidžia naujai apibrėžtai klasei išplėsti esamos klasės savybes ir elgesį. Kai naujas poklasis (arba išvestinė klasė) išplečia superklasę (arba pagrindinę klasę), tai poklasis paveldės visus superklasės atributus ir metodus. Poklasis gali pasirinktinai nepaisyti elgesio (suteikti metodams naujų ar išplėstų funkcijų), paveldėtų iš tėvų klasės. Paprastai poklasis negali išplėsti kelių super klasių (pvz., „Java“). Todėl negalite naudoti pratęsimų, kad paveldėtumėte kelis kartus. Norint paveldėti kelis kartus, reikia naudoti sąsajas.

Kuo skiriasi abstraktioji klasė nuo paveldėjimo?

Abstrakčios klasės paprastai reiškia abstrakčią sąvoką arba subjektą, iš dalies arba visai neįdiegtą. Paveldėjimas leidžia naujoms klasėms pratęsti kitas klases. Kadangi abstrakčių klasių negalima pagreitinti, turite naudoti paveldėjimo sąvoką, kad galėtumėte naudoti abstrakčių klases. Priešingu atveju abstrakčių klasė neturi jokios naudos. Anotacinėse klasėse gali būti abstrakčių metodų, o praplečiant klasę, visi metodai (abstraktus ir konkretus) yra paveldimi. Paveldima klasė gali įgyvendinti bet kurį arba visus metodus. Jei visi „Abstract“ metodai neįgyvendinami, ta klasė taip pat tampa „Abstract“ klase. Klasė negali paveldėti daugiau nei iš vienos abstrakčios klasės (tai nėra abstrakčių klasių kokybė per se, o paveldėjimo apribojimas)..