Mis on põhiklass?

Baasklass, mida nimetatakse ka superklassiks, on arvutiobjekt, mis toimib ühe või mitme tuletatud klassi alusena. Iga arvutikeel, mis on võimeline pärima, võib luua baasklassi. Sõltuvalt nende täpsest tüübist võivad baasklassid olla võimelised iseseisvalt initsialiseerima – määrama objektile algväärtuse –, kuid nad annavad alati mingisuguse ühise funktsionaalsuse mis tahes klassile, mis neilt pärib. Tuletatud klasside või alamklasside arv, mis baasklassidel võib olla, ei ole kunagi piiratud, kuid olenevalt arvutikeelest võib tuletatud klasside baasklasside arv olla piiratud. Keeled, mis võimaldavad tuletatud klassil olla ainult üks alus, jõustavad väidetavalt ühe pärandi, samas kui need, mis võimaldavad tuletatud klassil mitut baasklassi, kasutavad mitut pärandit.

Betooni baasklasse saab initsialiseerida iseseisvalt; ehk saab teha baasklassi tüüpi objekti. Kui klass Näide on tuletatud klassi Näide2 aluseks, saab teha nii objekti tüüpi Näide2 kui ka objekti tüüpi Näide. Näide tüüpi objekti saab teha ainult seda objektitüüpi selgesõnaliselt kutsudes; Näide2 tüüpi objekti loomine ei loo sekundaarset objekti tüüpi Näide. Igal juhul loob loodav objektitüüp ainult iseenda eksemplari.

Abstraktseid baasklasse seevastu ei saa iseseisvalt initsialiseerida, mis tähendab, et baasklassi objekti ei saa ise luua. Kui klass Näide3 on tuletatud klassi Näide4 abstraktne alus, saab teha ainult Näide4 tüüpi objekti. Kuigi tüüp Näide4 sisaldab andmeid tüübist Näide3, põhjustab katse muuta objektiks ainult Näide3 tüüpi objekt veaga. See funktsioon võib mõnikord olla kasulik, eriti kui klass Näide 3 sisaldab privaatseid andmeid, mis peaksid olema rangelt reguleeritud.

Olenevalt keelest, milles see ilmub, võib baasklassi käitumine olla veidi erinev ja nimed märkimisväärselt erinevad. Java®-s nimetatakse baasklasse alati selle nimega, samas kui C++-s võib neid sõltuvalt nende struktuurist nimetada virtuaalklassideks. Nime ja funktsionaalsuse erinevused, kuigi kasutatavate arvutikeelte osas on olulised, ei tähenda suuri erinevusi klasside põhimõttes. Põhiklassi kasutatakse alati selle tuletatud klasside ühiste funktsioonide ja andmete kapseldamiseks, olenemata keelest.