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)..
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.
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.
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
Synes godt om
Ny brugerNybegynder
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.