Abstrakti luokka

Abstrakti luokka on olio-ohjelmoinnissa käytetty luokka, josta ei voi luoda oliota. Se mahdollistaa rakennuspohjan luomisen, josta voidaan periä muuttujia ja metodeja muille luokille. Tällä vähennetään koodin toistuvuutta ja helpotetaan muokkaamista, koska muutokset voidaan tehdä abstraktiin luokkaan ja ne ilmestyvät kaikkiin sen periviin luokkiin. Koodia on myös helpompi lukea jos abstrakteja luokkia on hyödynnetty tehokkaasti, sillä se selventää eri luokkien suhteita toisiinsa. Abstraktit luokat itsessään ei tee mitään, vaan niitä hyödynnetään ainoastaan abstraktin luokan perivissä luokissa.

Abstraktit luokat sisältävät yleensä abstrakteja metodeja, jotka eivät sisällä toteutusta, mutta määrittelevät metodin nimen, paluuarvon ja mahdolliset parametrit. Kaikki abstraktit metodit on erikseen toteutettava jokaiseen abstraktin luokan periviin luokkiin ennen kuin niistä voidaan luoda olioita. Konkreettisia metodeja, jotka ovat periytynyt abstraktista luokasta, ei tarvitse erikseen toteuttaa luokassa. 

Java-ohjelmointikielessä abstrakti luokka luodaan nimikkeellä abstract, ja sen sisällä voi olla sekä abstrakteja että konkreettisia metodeja. C++ ohjelmointikielessä taas abstraktin luokan määritelmä on luokka, jonka sisällä on vähintään yksi abstrakti metodi.

Konkreettiset luokat ovat abstraktin luokan vastakohta, ja konkreettisesta luokasta voidaan luoda olio toisin kuin abstraktista luokasta. Abstraktissa luokassa voi olla sekä abstrakteja että konkreettisia metodeja, kun taas konkreettisessa luokassa voi olla vain konkreettisia metodeja.

Lähteet 

Olio-ohjelmointi