Page 24 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
* Abstrakte klasser
Abstrakte klasser
Eksempel: Stack
Abstrakte klasser: Skematisk eksempel
Abstrakte klasser i Java
Abstrakte metoder i Java
Eksempel: Stakken igen
Eksempel: Comparable
Eksempel: Microbib
* Multipel nedarvning
Hvorfor multipel nedarvning?
Problemstillinger ved multipel nedarvning
Multipel klassificering
Multipel nedarvning: Fornuftsægteskab
* Interfaces
Interface begrebet
Interface i Java: Syntaktiske regler
Interfaces i Java: Semantiske regler
Eksempel: StringInput og StringOutput
Eksempel: StringInput og StringOutput
Interfaces i Java Core API: Enumeration
Interfaces i Java Core API: Cloneable
Interfaces i Java Core API: Serializable
Interfaces i forhold til abstrakte klasser
Interfaces på tværs af klasser
Interfaces i forhold til klasser med multipel nedarvning
Interfaces i forhold til abstrakte klasser
Interfaces og abstrakte klasser er beslægtede. Her vil vi se hvorledes slægtskabet kan beskrives
Abstrakte klasser
Interfaces
Har mulighed for at beskrive forudannoncerede metoder
Ditto
Kan bruges til at erklære variable og forudannoncerede metoder
Ditto
Kan indeholde implementerede metoder
Kan kun indeholde forudannoncerede metoder
Indgår i et énstrenget nedarvningshierarki
Kan indgå i et generelt, multipelt nedarvningshierarki
Arver altid fra Object
Intet ultimativt super-interface
Hvis man skulle tale om et 'ultimativ superinterface' skulle det være et Interface som var fuldstændigt tomt
Ikke implementerede metoder fra interfaces giver anledning til abstrakte klasser