Kas yra bazinė klasė?

Bazinė klasė, dar vadinama superklase, yra kompiuterio objektas, kuris veikia kaip vienos ar kelių išvestinių klasių pagrindas. Bet kuri kompiuterinė kalba, galinti paveldėti, gali sukurti bazinę klasę. Priklausomai nuo tikslaus tipo, pagrindinės klasės gali arba negali būti inicijuojamos – priskiriant objektui pradinę reikšmę –, tačiau jos visada suteikia tam tikrą bendrą funkcionalumą bet kuriai iš jų paveldėjusiai klasei. Išvestinių klasių arba poklasių, kurias gali turėti pagrindinės klasės, skaičius niekada neribojamas, tačiau gali būti ribojamas bazinių klasių, kurias gali turėti išvestinė klasė, skaičius, priklausomai nuo kompiuterio kalbos. Teigiama, kad kalbos, leidžiančios išvestinei klasei turėti tik vieną bazę, užtikrina vieną paveldėjimą, o tos, kurios leidžia išvestinei klasei turėti kelias bazines klases, naudoja daugybinį paveldėjimą.

Betonines bazines klases galima inicijuoti atskirai; tai yra, galima padaryti bazinės klasės tipo objektą. Jei klasė Pavyzdys yra išvestinės klasės Pavyzdys2 pagrindas, galima sukurti ir Pavyzdys2 tipo, ir Pavyzdys tipo objektą. Pavyzdžio tipo objektas gali būti sukurtas tik aiškiai iškviečiant tą objekto tipą; Sukūrus Pavyzdys2 tipo objektą, antrinis pavyzdys tipo objektas nesudaromas. Kiekvienu atveju kuriamas objekto tipas sukuria tik savo egzempliorių.

Priešingai, abstrakčių bazinių klasių negalima inicijuoti atskirai, o tai reiškia, kad pagrindinės klasės objektas negali būti sukurtas pats. Jei klasė Pavyzdys3 yra abstrakti bazė išvestinei klasei Pavyzdys4, galima sukurti tik 4 tipo Pavyzdžio objektą. Nors 4 tipo pavyzdys apima duomenis iš tipo Pavyzdys3, bandymas sukurti objektą tik tokio tipo 3 sukels klaidą. Ši funkcija kartais gali būti naudinga, ypač jei 3 klasėje yra privačių duomenų, kurie turėtų būti griežtai reguliuojami.

Priklausomai nuo kalbos, kuria ji rodoma, pagrindinė klasė gali turėti šiek tiek skirtingą elgesį ir labai skirtingus pavadinimus. Java® bazinės klasės visada vadinamos tokiu pavadinimu, o C++, priklausomai nuo jų struktūros, jas galima vadinti virtualiomis klasėmis. Pavadinimo ir funkcionalumo skirtumai, nors ir reikšmingi naudojamų kompiuterių kalbų požiūriu, nereiškia didelių klasių principo skirtumų. Bazinė klasė visada naudojama bendroms išvestinių klasių funkcijoms ir duomenims įtraukti, neatsižvelgiant į kalbą.