Lecture overview -- Keyboard shortcut: 'u'  Previous page: Abstrakte klasser [Section] -- Keyboard shortcut: 'p'  Next page: Eksempel: Stack -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 2 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
Abstrakte klasser

Abstrakte klasser anvendes når vi skal designe de mest generelle dele af et klassehierarki. Der skal defineres subklasser af abstrakte klasser for at nyttiggøre disse. Vi vil her introducere de generelle begreber og ideer. På de efterfølgende sider vil vi se på Java detaljerne.

Abstrakte klasser anvendes til at repræsentere generelle begreber, som ikke kan eller ønskes implementeret på dette niveau

En abstrakt klasse er en klasse med abstrakte metoder

En abstrakt metode er en særligt markeret metode uden krop

En abstrakt metode siges også at være forudannonceret

En ikke-abstrakt klasse kaldes undertiden for en konkret klasse

En abstrakt klasse er en klasse, som foruden 'normale metoder' også indeholder én eller flere forudannoncerede metoder, uden krop

En forudannonceret metode er markeret med modifieren 'abstract'

Klasser som ikke er abtrakte vil undertiden blive kaldt konkrete klasser. Ligeledes bruges denne terminlogi for metoder

  • Det er ikke muligt at lave instanser af en abstrakt klasse

Da abstrakte klasser mangler detaljer i kroppen af abstrakte metoder giver det ikke mening at instantiere klasserne. Hvis vi gjorde det, kunne vi ikke opererere på dem.

  • Abstrakte metoder skal defineres fuldt ud i en subklasse af den abstrakte klasse

Eksempelvis kan klassen Konto defineres som en abstrakt klasse, hvis vi kun ønsker at arbejde med instanser af mere specialiserede kontotyper