Interfaces moet je eigenlijk niet al te technisch bekijken. Je moet de filosofie van interfaces snappen. Een interface is in feite een beschrijving van soort object. Interfaces zijn bedoeld om een beschrijving te geven van de
mogelijkheden de een bepaalde groep objecten biedt. Een Runnable kan je bijvoorbeeld runnen, over een Iterator kan je itereren en een List is een willekeurige lijst van objecten. Iets wat Comparable is kan je vergelijken en een Comparator vergelijkt elementen.
Met behulp van interfaces kan je objecten benaderen zonder dat je weet wat de concrete implementatie van een object is. Een sorterings algoritme kan bijvoorbeeld op 'Comparables' werken. Wat het object precies is, is niet relevant. Wat wel relevant is: het object moet te behandelen zijn als een Comparable.
In een interface geef je aan welke methoden implementaties moeten bevatten. Implementaties van de interface moeten deze methoden dus implementeren.
Je kunt dus geen instanties van interfaces maken, maar instanties van klassen kunnen wel via een interface behandeld worden als de klasse van deze instanties die interface implementeert,
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public class Flexible
{
private naam_interface changeableObject;
public void SetInteraction(naam_interface newnaam)
{
changeableObject=newnaam;
}
public void test()
{
String voorbeeld = changeableObject.GiveName();
//...
}
} |
Ik heb geen idee wat voor ongetwijfeld briljante design constructie hier achter zit.... Je hebt in ieder geval absoluut geen Flexible nodig.
OiSyN: Jaaaaa dat probleem heb ik ook wel eens gehad...
Whaaaa

. Hint voor de topic-starter: neem dit niet te serieus

.