final und private static

8

Ich habe das gelesen:

%Vor%

ist gleich:

%Vor%

beides bedeutet, dass die Methode nicht überschrieben werden kann!

Aber ich sehe nicht die Äquivalenz, wenn eine Methode privat ist, ist es automatisch nicht zugänglich ...

    
xdevel2000 16.06.2010, 08:34
quelle

2 Antworten

20

Es stimmt, dass Sie @Override nicht für beide Methoden verwenden können. Sie können nur @Override eine nicht final Instanz Methode verwenden.

  • Wenn es final ist, dann kann man @Override es nicht
  • Wenn es static ist, dann ist es keine Instanz Methode, mit
  • zu beginnen

Es ist NICHT wahr, dass sie "gleich" sind, weil eins private static und das andere public final ist.

  • Sie haben unterschiedliche Zugänglichkeitslevel
  • Die Methode instance benötigt eine Instanz, auf die aufgerufen wird, die Methode class nicht
  • Die class -Methode kann nicht auf instance -Methoden / -Felder aus dem static -Kontext
  • verweisen

Sie können nicht @Override a static -Methode verwenden, aber Sie können sie mit einer anderen static -Methode ausblenden. Eine static -Methode erlaubt natürlich keinen dynamischen Versand (was durch @Override erreicht wird).

Referenzen

Verwandte Fragen

polygenelubricants 16.06.2010, 08:35
quelle
2

Keine kann außer Kraft gesetzt werden, aber aus sehr unterschiedlichen Gründen. Die erste ist eine öffentliche nichtstatische Methode, während die zweite statisch ist. Die erste ist also nicht überschreibbar, nur weil sie als endgültig deklariert wurde, während die zweite, die statisch ist, niemals überschrieben werden kann.

Beachten Sie, dass Sie von Anfang an auf nicht statische Mitglieder der Klasse zugreifen können, während Sie ab der Sekunde nicht können. Sie werden also sehr unterschiedlich eingesetzt, sind also nicht "gleich".

    
Péter Török 16.06.2010 08:37
quelle

Tags und Links