580 Stimmen

Warum erlaubt Java keine Überschreibung statischer Methoden?

Warum ist es nicht möglich, statische Methoden außer Kraft zu setzen?

Wenn möglich, verwenden Sie bitte ein Beispiel.

3 Stimmen

Die meisten OOP-Sprachen lassen dies nicht zu.

11 Stimmen

@jmucchiello: siehe meine Antwort. Ich habe dasselbe gedacht wie Sie, aber dann habe ich von den Ruby/Smalltalk-"Klassen"-Methoden erfahren, und es gibt also auch andere echte OOP-Sprachen, die das tun.

6 Stimmen

@jmucchiello die meisten OOP-Sprachen sind keine echten OOP-Sprachen (ich denke an Smalltalk)

-3voto

pop stack Punkte 856

Der folgende Code zeigt, dass dies möglich ist:

class OverridenStaticMeth {   

static void printValue() {   
System.out.println("Overriden Meth");   
}   

}   

public class OverrideStaticMeth extends OverridenStaticMeth {   

static void printValue() {   
System.out.println("Overriding Meth");   
}   

public static void main(String[] args) {   
OverridenStaticMeth osm = new OverrideStaticMeth();   
osm.printValue();   

System.out.println("now, from main");
printValue();

}   

}

1 Stimmen

Nein, das tut es nicht; der statisch deklarierte Typ von osm es OverridenStaticMeth no OverrideStaticMeth .

4 Stimmen

Außerdem würde ich versuchen, beim Programmieren nicht so viel Meth zu verwenden <großes Grinsen>;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X