Et interface giver en signatur for hvad en klasse som minimum skal tilbyde for at leve op til interfacet. Interfacet giver en liste af metodenavne, deres argumenter og returtype, og så er det op til en klasse at levere disse metoder.
En abstrakt datatype er en datatype, som ikke er konkret. En datatype, som er konkret, kan instantieres, det kan en abstrakt type ikke.
"Hund" er en abstaktion over et firbenet kræ som kan logre med halen og gø. Fido er et konkret eksemplar af abstraktionen "Hund", men Fido er ikke bare en "Hund"...intet er bare en hund. Fido er en "Labrador", som er en konkret hunderace...Fido findes, "Hund" er bare en abstraktion, som beskriver hvad der gør sig gældende for alt, som med rette kan kaldes for en hund, og "Labrador" er en konkret race.
I det ovenstående er "Hund" en abstrakt datatype, "Labrador" er en konkret datatype nedarvet af "Hund" typen, og "Fido" er en instans af den konkrete datatype "Labrador".
Det er den helt generelle forklaring. I Java kan en abstrakt klasse være delvist implementeret, det kan et interface ikke. Interfacet er altså kun beskrivelsen.
Giver det mening?
Indlæg senest redigeret d. 13.06.2013 15:25 af Bruger #2695