Я читал книгу "Java-параллелизм на практике", 2.3.2 Reentrancy. Он говорит: «, поскольку методы doSomething в Widget и LoggingWidget синхронизированы, каждый пытается получить блокировку для Widget перед продолжением ». Интересно, почему они все пытаются получить блокировку на виджете, а не на виджете LoggingWidget.
public class Widget{
public synchronized void doSomething(){
...
}
}
public class LoggingWidget extends Widget{
public synchronized void doSomething(){
System.out.println("calling doSomething");
super.doSomething();
}
}