Page 18 : 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 Java: Semantiske regler
I kølvandet på de syntaktiske regler nævnt ovenfor observerer vi her en række mere semantiske regler omkring brugen af interfaces i Java
Type:
Et interface kan anvendes som type, præcist som en klasse
En variabel eller parameter, der er type-erklæret med et interface, er polymorf
Ethvert objekt af en klasse, som implementerer interfacet, kan refereres af variablen eller parameteren
Instantiering:
Det giver ikke mening at instantiere et interface
Synlighed:
Et interface kan være offentlig (public) eller synlig i sin pakke (default)
Alle metoder i et interface er implicit public abstract
Man kan ikke erklære en metode i et interface 'static', 'final', 'private' eller 'protected'
Stilistisk anbefaling: Undgå at bruge modifiers på metoder i en interface definition
Alle konstanter i et interface er implict public static final
Man kan ikke erklære en variabel for 'private' eller 'protected'
Man kan undlade at bruge modifiers 'public', 'static' og 'final' ved erklæring af konstanter i interfaces