Aufruf Basisklasse überschrieben-Funktion aus der Basis-Klasse Methode

public class A {
    public void f1(String str) {
        System.out.println("A.f1(String)");
        this.f1(1, str);
    }

    public void f1(int i, String str) {
        System.out.println("A.f1(int, String)");
    }
}



public class B extends A {
    @Override
    public void f1(String str) {
        System.out.println("B.f1(String)");
        super.f1(str);
    }

    @Override
    public void f1(int i, String str) {
        System.out.println("B.f1(int, String)");
        super.f1(i, str);
    }
}


public class Main {
    public static void main(String[] args) {
        B b = new B();
        b.f1("Hello");
    }
}

Ich bin auf der Suche nach diesen code-Ausgang:

B.f1(String)
A.f1(String)
A.f1(int, String)

Aber ich bin die erste:

B.f1(String)
A.f1(String)
B.f1(int, String)
A.f1(int, String)

Ich verstehe, dass im Kontext von B - "dieser" in A. f1(String) ist B Instanz.
Habe ich die Möglichkeit, die Kette new B1().f1(String) -> (A) f1(String) -> (A) f1(int, String) ?

Dies ist eine theoretische Frage, praktisch die Lösung wäre natürlich, die in Einer zur Umsetzung einer private-Funktion, die f1(String) und f1(int, String) nennen würde.

Danke,
Maxim.

Ich habe versucht, mit Reflexion (immer ein Method-Objekt für die f1(int, String) und die Berufung auf Sie), aber es hat nicht funktioniert. Dieses [blog-Eintrag][1] in Sun-blogs weist darauf hin, dass dies nicht möglich ist mit Java. [1]: blogs.sun.com/sundararajan/entry/...
Schön finden auf dem link

InformationsquelleAutor Maxim Veksler | 2011-01-29

Schreibe einen Kommentar