Я хочу изменить метод выполнения класса без переопределения метода и только переопределить (или идеально расширить) внутренний класс. Предположим, что я не могу изменить тот факт, что мне нужно это сделать (я изменяю существующую базу данных с открытым исходным кодом, и было бы трение для вытаскивания классов или еще чего-то).
public class A {
static class Thing {
public int value() { return 10+value2(); }
public int value2() { return 10; }
}
public String toString() {
Thing t = new Thing();
return Integer.toString(t.value());
}
}
public class B extends A {
static class Thing {
public int value2() { return 20; }
}
}
Моя цель состоит в том, чтобы изменить только Thing, получив B toString(), чтобы вернуть "30", где в настоящее время он вернет "20". Идеальным было бы изменить только метод value2 (таким образом, оставив любые другие методы без изменений), но я не знаю, возможно ли это.
Спасибо