Osaluokka on joidenkin olio-ohjelmointikielien ominaisuus, jonka avulla luokan toteutus voidaan jakaa useiden lähdekooditiedostojen kesken. Osaluokkia, joita kutsutaan myös osatyypeiksi, ei ole monilla ohjelmointikielillä, erityisesti vanhemmilla, kuten C ++ ja Java. Jokainen kieli, joka toteuttaa osittaisia luokkia, kuten C# ja Ruby, käsittelee toteutusta hieman eri tavalla.
Yleensä osittaiset luokat käyttävät “osittaista” avainsanaa luokan osien merkitsemiseen, ja se, onko avainsana isoilla kirjaimilla, riippuu käytetystä ohjelmointikielestä. Jokainen luokan osa alustetaan samalla tavalla samanlaisilla luokkailmoituksilla, ja ilman näitä “osittaisia” avainsanoja olisi laitonta luoda useita luokkia useisiin tiedostoihin, joilla kaikilla on sama nimi. Osittainen avainsana käskee kääntäjän tai tulkin kielestä riippuen yhdistämään kaikki luokat yhdeksi suureksi yksiköksi. Kaikilla luokan erillisillä osilla on oltava sama näkyvyys, olivatpa ne julkisia, yksityisiä tai suojattuja. Jos yksi luokan osa on nimetty abstraktiksi, yhdistetty luokka on myös nimetty abstraktiksi, vaikka mikään muu yksittäinen osa ei olisi nimetty sellaiseksi.
Osaluokan toteuttamisella useissa tiedostoissa on joitain merkittäviä etuja sekä ohjelmointityylissä että organisaatiossa. Osittaiset luokat mahdollistavat nimenomaisen erillisen koodin erottamisen erikoistuneempiin ryhmiin. Lisäksi osittainen luokka sallii useiden ohjelmoijien työskennellä tiettyjen koodin osien kanssa mahdollisesti häiritsemättä muita ja vahingossa korvaamalla versiot. Jopa yksittäisille ohjelmoijille osittaiset luokat voivat olla hyödyllisiä, koska niitä voidaan käyttää luomaan erittäin suuria luokkia ilman, että luodaan myös yhtä hankalaa tiedostoa, jonka järjestäminen ja lukeminen on vaikeaa.
Osittaisilla luokan toteutusmalleilla on myös joitain merkittäviä haittoja. Vaikka osaluokat ovat olio-ohjelmoinnin alaisuudessa, ne rikkovat itse asiassa olio-ohjelmoinnin keskeisiä kapselointiperiaatteita. Objektisuuntautuneessa ohjelmoinnissa luokan oletetaan olevan yksi yhtenäinen kokonaisuus, jolla on omat ainutlaatuiset tilat ja käyttäytymismallit, joka on itsenäinen ja jota voidaan käyttää yhtenäisenä yksikkönä. Osittaiset luokat rikkovat tätä ajatusta, koska jokainen osaluokka toimii kuin yksittäinen luokka. Vaikka osat, jotka muodostavat osittaisen luokan, yhdistetään yhdeksi suureksi luokkaa ajon aikana, osaluokan kappaleet ovat usein itsenäisiä kokonaisuuksia, joita voitaisiin käyttää yksinään ilman minkäänlaista yhdistämistä.