Lecture overview -- Keyboard shortcut: 'u'  Previous page: Hvorfor multipel nedarvning? -- Keyboard shortcut: 'p'  Next page: Multipel klassificering -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 12 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
Problemstillinger ved multipel nedarvning

Vi så kort i forrige lektion at en klasse kan arve fra mere end én klasse i nogle objekt-orienterede programmeringssprog. Vi vil nu se lidt nærmere på dette, og vi vil identificere nogle af de problemer og udfordringer, der opstår i den sammenhæng.

En situation hvor navnet x arves af C fra både A og B

  • Problemstillinger:

    • Navnesammenfaldsproblemet: Hvilken egenskab refererer x til i C?

    • Kombinationsproblemet: Kan x fra A og B kombineres i C?

    • Selektionsproblemet: Kan man fra C vælge mellem x fra A eller B?

    • Replikationsproblemet: Ønsker vi to x-er i C?

Lad os først understrege at de fire problemstillinger hænger ganske tæt sammen. Når vi taler om navnesammenfald som et problem er det ud fra en filosofi om, at et navn kun kan referere til én egenskab (én routine og/eller én instansvariabel). Hvis flere egenskaber har samme navn er det tvetydigt, hvilken egenskab vi egentlig mener.

Som et alternativ til at løse navnesammenfaldsproblemet kan man forsøge at løse kombinationsproblemet. Filosofien er nu at vi refererer til begge (alle) egenskaber i en eller anden kombination. Kunststykket er naturligvis så at finde ud af, hvordan man generelt, eller for bestemte slags egenskaber, kan danne kombinationer.