tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
445
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Syrill Syrill ist offline Mitglied Bronze
    Registriert seit
    Nov 2010
    Beiträge
    39
    Hallo!

    Können statische Methoden in einer abgeleiteten Klasse überlagert werden? Oder sind die Ableitungen dann einfach ungültig, bzw. werden ignoriert?


    EDIT:
    Oder können sie das in der Regel schon. Wenn aber dann eine folgender Fall auftritt:
    Code :
    1
    
    VaterKlasse xyz = new AbgeleiteteKlasse();
    wird dann dennoch die statische Methode der Vaterklasse verwendet, obwohl diese eigentlich in der abgeleiteten Klasse überlagert wurde?
    Geändert von Syrill (09.11.10 um 18:20 Uhr) Grund: Neue Idee gehabt...
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Was hindert dich daran es zu prüfen? Das hat jetzt gerade mal eine Minute gedauert.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    class A {
        public static void a() {
            System.out.println("a");
        }
     
        public static void main(String[] args) {
            A.a();
            B.a();
            C.a();
        }
    }
     
    class B extends A {}
     
    class C extends A {
        public static void a() {
            System.out.println("c");
        }
    }

    Ausgabe:
    a
    a
    c
    Beantwortet das deine Frage?


    Der Teil nach dem Edit macht keinen Sinn, weil du dort eine Instanz erzeugst. Du redest aber von statischen Methoden.
     

  3. #3
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Überlagern ja, aber nicht erben. Dazu eine Erweiterung des vorherigen Beispiels mit teilen aus dem ersten Post:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public static void main(String[] args) {
        A a = new A();
        a.a();
        A b = new B();
        b.a();
        A c1 = new C();
        c1.a();
        
        C c2 = new C();
        c2.a();
    }

    Ausgabe:

    Code :
    1
    2
    3
    4
    
    a
    a
    a
    c

    Bei statischen Methoden wird die aufzurufende Methode nicht zur Laufzeit sondern Compilezeit festgelegt, wodurch der Typ der Variablen entscheidend ist.
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 16.06.10, 19:48
  2. Statische Methoden/Klassen?
    Von NeMeSiS1987 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 11.06.08, 10:54
  3. Virtuelle Instrumente werden von Piano überlagert
    Von u53r im Forum Audiotechnik, Recording & Audio-Software
    Antworten: 3
    Letzter Beitrag: 26.05.08, 23:04
  4. Statische Virtuelle Methoden / Felder Sperre umgehen
    Von Danielku15 im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 07.08.07, 20:37
  5. Statische Methoden versus Application-Bean
    Von AKST im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 01.06.06, 15:25