I objektorienteret programmering er en underklasse en klasse , der arver nogle (eller alle) dens egenskaber fra sin superklasse .
For nemheds skyld kan du tænke på en underklasse som en af "variationerne" af dens superklasse, såsom " Manx er en katterace" og "firkantet er en slags rektangel":
Fra dette synspunkt er en underklasse en mere raffineret version af sin superklasse; det vil sige, at der er listet fakta om katte, der angiver, at de generelt er sande for alle katte, også selvom nogle racer ikke har en hale. Og alle rektangler har fire sider, mens kvadratet har en snævrere fortolkning af disse karakteristika: alle disse fire sider skal have samme længde.
Forveksle ikke underklasse-superklasse-forholdet med forholdet mellem klasser og dets objekter (instanser). "Forekomst af en kat" refererer til en bestemt kat . Manx-katten i tabellen fortsætter med at være en klasse, da der er mange forskellige Manx-katte. Og hvis en bestemt kat (et tilfælde af en katteklasse) ved et uheld mister halen i en kamp med en ræv, så ændrer dette ikke selve katteklassen. Det vil stadig kun være en bestemt kat, der har gennemgået ændringer.
Underklasser og superklasser omtales ofte som henholdsvis afledte eller afledte (afledte) og basis (basis) klasser, og disse termer er fastsat af skaberen af C ++ - Bjørn Stroustrup , som fandt disse termer mere intuitive end den traditionelle nomenklatur af navne. [en]
For en mere detaljeret forklaring af begrebet klasser i objektorienteret programmering , se artiklen om klasser .