Avatar billede aligncenter Nybegynder
07. juni 2001 - 00:18 Der er 5 kommentarer og
3 løsninger

modifier static not allowed here

i et interface må man ikke bruge static, hvvad med de klasser der så skal implementere interfacet de må jo heller ikke bruge static

?
Avatar billede mwittrock Nybegynder
07. juni 2001 - 00:27 #1
Klassen, der implementerer interfacet, må gerne indeholde static metoder, men interfacets metoder må stadig ikke være static.
Avatar billede bearhugx Nybegynder
07. juni 2001 - 00:35 #2
Korrekt... Grunden til at interfaces ikke må indeholde statics er at et interface IKKE kan instantieres... Hvis man laver enten interfacet eller attributter static, vil denne del af interfacet blive præ-instantieret, når du kører programmet - hvilket er ulovligt for abstrakte klasser(interfaces)..
Avatar billede bearhugx Nybegynder
07. juni 2001 - 00:36 #3
Derimod må du gerne bruge static i enhver klasse som implementerer et inteface... Ingen ko på isen der :-)
/Søren Munk Skrøder
Avatar billede mpultz Nybegynder
07. juni 2001 - 08:21 #4
bearhugx: Abstrakte klasser og interfaces er ikke helt det samme (vi har vidst haft denne snak før om abstrakte klasser og interfaces, og der er rigtig at de forståelsesmæssigt er meget ens). Du kan godt have en abstrakt klasse som indeholder en statisk metode, f.eks.

abstract class Test
{
  public abstract void test();
  public static void staticTest() { /* et eller andet */ }
}

Så kan du godt kalde Test.staticTest() uden at have en nedarvet instans af Test.

aligncenter: så hvis du har behov for et interface med en statisk metode, så lav f.eks. en abstakt klasse i stedet.
Avatar billede mwittrock Nybegynder
07. juni 2001 - 12:09 #5
Forvirringen er nok, at det er de metoder i en abstract klasse, der rent faktisk _erklæres_ abstrakt, der ikke samtidig kan være static.
Avatar billede aligncenter Nybegynder
07. juni 2001 - 13:12 #6
jeg kan ikke lave static metoder med et interface der ikke kan have static metoder, så brokker compileren sig nemlig
Avatar billede logical Nybegynder
07. juni 2001 - 18:02 #7
Hvis du foeler du har behov for at beskrive statiske metoder i et interface, har du misset noget konceptuelt. Du har meget sjaeldent behov for statiske metoder til andet end main og implementering af et singleton pattern.

Avatar billede bearhugx Nybegynder
08. juni 2001 - 00:25 #8
Logigal >>
Yeps... Og/eller en generisk ressource (f.eks. BorderFactory i swing-package)...

Generelt er jeg heller ikke helt glad ved statiske metoder....
Personligt bruger jeg kun static-keyword ved
1) main
2) singletons
3) når jeg absolut vil forpeste datasegmentet med globale variabler

/Søren Munk Skrøder
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester