Вызов метода родительского класса без изменения кода - PullRequest
0 голосов
/ 26 мая 2011

Рассмотрим следующий фрагмент кода ниже.

class X {
    public String toString() {
        return "Hi";
    }
}

public class Main {
    public static void main(String[] args) {
        Object obj = new X();
        System.out.println(obj.toString());
    }
}

Как теперь вызвать toString () внутри класса Object, не меняя код?Или то, что я спрашиваю, невозможно?

1 Ответ

3 голосов
/ 26 мая 2011

Снаружи вы не можете - это нарушит инкапсуляцию. (Представьте, что toString() действительно был методом изменения состояния объекта, и подкласс хотел применить некоторые ограничения - вы не должны пропускать эти ограничения.) Вы можете сделать это из самого X, например

public String toString() {
    return super.toString() + "Hi";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...