Objektorienteeritud programmeerimises annab abstraktne klass baasklassi, mida saab kasutada teistele klassidele osalise teostuse ja liidesega pakkumiseks. Need on iseenesest mittetäielikud ja neid kasutatakse paljudes programmeerimiskeeltes, nagu Java, C++ ja C#, pärimisolukordades. Nende kasutamine baasklassina tähendab, et neid nimetatakse sageli abstraktseks baasklassiks (ABC).
Objektorienteeritud programmeerimise lahutamatu osa, andmete abstraktsioon eemaldab objektist mittevajalikud detailid. Põhimõtteliselt taandab see objekti selle peamistele identifitseerimisomadustele. Need põhiomadused annavad plaani, mida saab kasutada muude samade omadustega objektide loomiseks, mis erinevad ainult detailide poolest.
See plaan on määratletud klassina. Koodi kapseldamiseks kasutatakse klasse, mis teeb programmeerijale selle lihtsamaks, sest ta saab rutiinide pideva kirjutamise asemel viidata kindlatele tavapärastele rutiinidele. Programmeerijad loovad klassidest alamobjekte ja need objektid pärivad ülemklassi funktsioonid ja meetodid.
Abstraktse klassi eesmärk on olla raamistik, millele teised klassid on üles ehitatud. Objekte ei saa luua otse abstraktsest klassist, vaid ainult abstraktsesse klassi kuuluvatest alamklassidest. Objekti pärimiseks abstraktsest klassist tuleb luua alamklass. Abstraktse klassi loodud alamklassi objektid pärivad selle abstraktse klassi omadused.
Iga klass modelleerib kontseptsiooni ja abstraktsed klassid kipuvad abstraktseid meetodeid kasutades modelleerima abstraktsemaid mõisteid. Abstraktsed meetodid on abstraktse klassi alamprogrammid, mis ei sisalda rakendust. Neid alamprogramme kasutatakse kohahoidjatena, mis tuleb üle kirjutada alamklassi või objektiga, mis on loodud abstraktset meetodit sisaldava klassi põhjal.
Abstraktse klassi loomiseks on erinevaid meetodeid. Näiteks C++-s luuakse abstraktne klass, arendades klassi vähemalt ühe abstraktse meetodi või puhta virtuaalse funktsiooniga. Java kasutab abstraktse klassi tähistamiseks märksõna “abstract”. Neid ei ole aga määratletud programmeerimiskeeltes, mis ei toeta pärimise ideed.
Pärimine on klassidest uute objektide loomise protsess, kus uued objektid saavad kasutada oma põhiklassides määratletud funktsioone ja meetodeid, ilma et oleks vaja programmi uuesti esitada. Seetõttu on abstraktne klass kasulik. Nende alamklasside alamklassid ja alamobjektid pärivad omadused ülem-abstraktselt klassilt. Abstraktseid klasse peetakse superklassideks ja need on klassistruktuuri hierarhia tipus, seega pole neil mõtet keeles, mis ei toeta pärimist.