Hvad er baseklasse?
En baseklasse, også kaldet en superklasse, er et computerobjekt, der fungerer som et fundament for en eller flere afledte klasser. Ethvert computersprog, der er i stand til at arve, kan oprette en baseklasse. Afhængigt af deres nøjagtige type, kan baseklasser muligvis eller ikke være i stand til at initialisere - tildele en initial værdi til et objekt - på egen hånd, men de giver altid en slags fælles funktionalitet til enhver klasse, der arver fra dem. Der er aldrig en grænse for antallet af afledte klasser eller underklasser, som baseklasser kan have, men der kan være en grænse, afhængigt af computersproget, til antallet af baseklasser, en afledt klasse kan have. Sprog, der tillader, at en afledt klasse kun har en base, siges at håndhæve en enkelt arv, mens de, der tillader en afledt klasse at have flere baseklasser, bruger flere arv.
Konkrete baseklasser kan initialiseres på egen hånd; det vil sige, der kan laves et objekt af basisklasse-typen. Hvis et klasseeksempel er en base for en afledt klasseeksempel2, kan begge et objekt af type eksempel 2 og et objekt af typeeksempel oprettes. Et objekt af typen Eksempel kan kun oprettes ved eksplicit at anmode om den pågældende objekttype; Oprettelse af et objekt af typen Eksempel 2 opretter ikke et sekundært objekt af typen Eksempel. I begge tilfælde bygger den objekttype, der oprettes, kun en forekomst af sig selv.
I modsætning hertil kan abstrakte baseklasser ikke initialiseres alene, hvilket betyder, at et objekt af basisklassen ikke kan laves af sig selv. Hvis et klasseeksempel3 er en abstrakt base for en afledt klasseeksempel4, kan der kun laves et objekt af eksempeleksempel4. Selvom type Eksempel 4 inkluderer data fra typen Eksempel 3, vil forsøg på at fremstille et objekt udelukkende af type Eksempel 3 resultere i en fejl. Denne funktionalitet kan til tider være nyttig, især hvis klasseeksempel 3 indeholder private data, der skal reguleres tæt.
Afhængigt af det sprog, det vises på, kan en baseklasse have lidt anderledes adfærd og markant forskellige navne. I Java® henvises der altid til baseklasser med det navn, mens de i C ++, afhængigt af deres struktur, kan kaldes virtuelle klasser. Forskellene i navn og funktionalitet, selvom de er betydelige med hensyn til de computersprog, der bruges, indebærer ikke store forskelle i princippet bag klasserne. En baseklasse bruges altid til at indkapsle fælles funktionalitet og data for dens afledte klasser, uanset sproget.