Lecture overview -- Keyboard shortcut: 'u'  Previous page: Abstrakte klasser: Skematisk eksempel -- Keyboard shortcut: 'p'  Next page: Abstrakte metoder i Java -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 5 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
Abstrakte klasser i Java

Vi vil nu introducere abstrakte klasser i forhold til Java


abstract class klasseNavn {    
  dataErklæringer
  konstruktorer
  metoder
}

Syntaksen for definition af en abstrakt klasse. På dette niveau er er den eneste syntaktiske forskel, at 'modifieren' abtract er benyttet.

  • Klasser som indeholder en abstrakt metode skal erklæres abstrakt

  • Det er tilladt at erklære abstrakte klasser uden abstrakte metoder

Abstrakte klasser, som ikke har abstrakte metoder, kan naturligvis (heller) ikke instantieres

  • Det er muligt - men atypisk - at aflede en abstrakt klasse fra en konkret klasse

Når vi siger, at en abstrakt klasse i Java kan afledes fra en konkret klasse mener vi at en subklasse kan være abstrakt selv om den's superklasse er konkret. Dette kan måske bruges til i et stort klassehierarki at introducere niveauer mellem konkrete klassser, som vi vil forhindre instantiering af

  • Konstruktorer giver mening i abstrakte klasse, også selv om en abstrakt klasse ikke kan instantieres