I programmering er en superklasse eller overordnet klasse en klasse , hvorfra andre klasser er afledt. Klasser afledt af en superklasse kaldes børneklasser , afledte klasser eller underklasser .
En superklasse giver dig mulighed for at skabe en generisk grænseflade, der indkapsler brugerdefineret funktionalitet gennem brug af virtuelle funktioner .
Superklassemekanismen er meget udbredt i objektorienteret programmering på grund af dens genanvendelighed , som opnås gennem fælles funktioner indkapslet i modulære objekter.
Programmeringssprog kan understøtte både abstrakte og konkrete superklasser.
En basisklasse er en klasse, der ikke har nogen superklasse og derfor er i bunden af underklassetræet. De fleste objektorienterede programmeringssystemer giver et bibliotek af klasser, hvorfra udvikleren bygger sine egne. Disse biblioteker giver ofte en eller et ret begrænset sæt af basisklasser, der udgør kernen i biblioteket.
I det tilfælde, hvor et sprog eller et bibliotek kun har én basisklasse, kaldes det den højeste type .
I UML kan en klasse have sit eget sæt rodegenskaber for at angive, at det er basisklassen.
I C++-stilen (som bruges i C# og andre sprog), bruges udtrykket "basisklasse" i stedet for udtrykket "superklasse".
I programmeringssproget Java kaldes metoden for at bestemme superklassen af en klasse getSuperclass. Denne metode returnerer et klasseobjekt, der repræsenterer superklassen af den givne klasse, eller returnerer null, hvis klassen ikke har nogen superklasser. For at bestemme alle klassens forældre getSuperclasskaldes metoden gentagne gange, indtil den returnerer null.
Følgende eksempel slår overordnede klassenavne op for Button-klassen ved hjælp af metoden getSuperclass:
importer java.lang.reflect.* ; importer java.awt.* ; klasse SampleSuper { public static void main ( String [] args ) { Button b = new Button (); printSuperklasser ( b ); } static void printSuperclasses ( Object o ) { Klasse underklasse = o . getclass (); Klasse superklasse = underklasse . få Superklasse (); while ( superklasse != null ) { String className = superklasse . getName (); System . ud . println ( klassenavn ); underklasse = superklasse ; superklasse = underklasse . få Superklasse (); } } }Programmet returnerer:
java.awt.Component java.lang.Object