Малко помощ, моля, разгледайте частта от кода по-долу.
public class Widget {
public synchronized void doSomething() {
...
}
}
public class LoggingWidget extends Widget {
public synchronized void doSomething() {
System.out.println(toString() + ": calling doSomething");
super.doSomething();
}
}
Четох, че когато се извика doSomething() в LoggingWidget, JVM ще се опита първо да получи заключване на LoggingWidget и след това на Widget.
Любопитно ми е да разбера причината. Дали защото JVM знае, че doSomething() има извикване към super.doSomething() или защото извикването на метод на подклас винаги ще придобие заключване и на суперкласа.
наздраве