Czy mogę zastąpić prywatną metodę w Javie?

Wiem, że mogę użyć refleksji, aby wywołać metodę prywatną i uzyskać lub ustawić wartość zmiennej prywatnej, ale chcę zastąpić metodę.

public class SuperClass {

    public void printInt() {
        System.out.println("I am " + getClass() + ". The int is " + getInt());
    }

    private int getInt() {
        return 1;
    }
}

public class SubClass extends SuperClass {

    public static void main(String[] args) {
        (new SubClass()).printInt();
    }

    public int getInt() {
        return 2;
    }
}

Chcęmain metoda wSubClass wydrukować2, ale drukuje1. Słyszałem, że można to zrobić poprzez refleksję, ale nie wiem, jak to zrobić. Jeśli nie, to czy ktoś wie, jak to zrobić? (Inne niż robienieSuperClass.getInt() chronione lub kopiowanie i wklejanieprintInt() metoda doSubClass.) Jeśli faktycznie nadpisanie metody prywatnej nie jest możliwe, czy istnieje sposób na umieszczenie na niej pewnego rodzaju wyzwalacza, który wywoła metodę w mojej podklasie przed lub po wykonaniu metody prywatnej?

questionAnswers(10)

yourAnswerToTheQuestion