public class Widget {
public synchronized void doSomething(){
//...
}
}
class LoggingWidget extends Widget{
public synchronized void doSomething(){
System.out.println(toString()+":calling doSomething");
super.doSomething();
}
}
代码见上,对应对Java并发编程实践P21,书本上说,在构造子类对象后,调用doSomething方法时,每个doSomething方法在执行前都会获取Widget上的锁;我的问题是:从始至终不是只创建了子类LoggingWidget对象,锁不是应该属于子类对象LoggingWidget的?