Citat:
Ursprungligen postat av putte31
Någon här som kan redogör för när man skall använda Interface resp. en abstrakt klass?
Ett interface ska inte innehålla några implementerade metoder, och inga satta variabler som inte är static final. Det vill säga bara ett skelett som klassen som använder det måste implementera.
En abstract klass kan innehålla både abstracta metoder som ska implementeras, och färdiga "default"-metoder som kan användas direkt eller överlagras.
Det finns lite skillnader hur de kan användas också... till exempel kan en klass bara ärva från
en abstract klass, men implementera flera interface.
När man ska använda de är ju en fråga för sig. Ska du t.ex. göra en plugin till något program så är det bra att ha ett interface att bygga det utifrån, då vet man att alla metoder som behövs finns med.
Detta går ju att göra med en abstract klass också, men då får du med saker som kanske inte ens kommer användas i pluginen. Det vill säga det är bättre att bara ha ett interface här.
Abstracta klasser är mer flexibla, och vill du ha en stabil grund när du bygger en klass som har många likheter är det bäst att ha en abstract klass som implenterar gemensamma metoder etc, så slipper man skriva om de för varje klass.