public class KLASSENAVN { public KLASSENAVN() { } }
en klasse som skal anvende et interface ser sådan her ud
public class KLASSENAVN implements NAVNETPÅINTERFACET { public KLASSENAVN() { } }
I en interface er der nogen metoder og de metoder er derfor nød til at have med i din klasse som implementere det pågældende interface(eller klassen skal være erklæret for abstract)!
så har din interface en metoderne(hvilken et interace kun har) doSomething(); andSomethingElse();
så skal de metoder være med i den klasse som implementere dette Vil se sådan her ud
public class KLASSENAVN implements NAVNETPÅINTERFACET { public KLASSENAVN() { } doSomething(){} andSomethingElse(){}
}
Man kan sige det er en form for "kontrakt" så du husker at have metoderne med i din klasse(r).
Lidt overfladisk forklaret, men med lidt læsning giver det nok mening:)
En klasse som implementere et givet interface har således samme type som interfacet definerer.
interface Foo { public void bar(): }
class Baz implements Foo { [..]
public void bar() { //do stuff } }
Baz objekter er således af typen Foo og kan bruges når en Foo type kræves.
Et praktisk eksempel kan ses i interfacet java.util.Collection og klassen java.util.Collections
Collection er interface (som f.eks. ArrayList implementere (implicit gennem List interfacet))
Collections er en konkret klasse som kan udføre en masse spændende operationer på objekter af typen Collection. F.eks. sortering, min, max, søgning osv.
Du skal skelne mellem om du vil bruge interfaces lavet af andre eller du selv vil lave interfaces.
Hvis du bare skal bruge dem så gør du det sikkert allerede i stor stil.
java.sql og javax.xml pakkerne består næsten ikke af andet end interfaces.
NavnPåInterface x = etelleranderobject.createNavnPåInterface();
i.s.f. at kalde en constructor.
Finessen er at de konkrete klasser kan være helt forskellige (for forskelle databaser eller forskellige XML parsere f.eks.).
Hvis du selv skal lave nogen så skal du igang med "rigtig OOP". Og du skal nok finde en god bog om det. Hvordan er ret simpel (og beskrevet af søren og kalp), men de næste spørgsmål hvornår og hvorfor kræver lidt mere.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.