3

如果基类 A 有一个“public synchronized void method(){}”没有被其派生类 B 覆盖,那么使用的锁是什么(即是派生类对象还是基类对象)访问 B 类中的同步方法?

4

2 回答 2

4

没有“基类对象”。

synchronized方法锁定在调用它们的实例上。

于 2013-11-07T18:34:06.223 回答
0
public synchronized void method() {  
    ...
};

public void method() {  
    synchronized(this){
        ...
    }
};

而对于一个超级方法来说this意味着一个类的对象B。所以锁将在对象的一个​​实例上B

于 2013-11-07T22:20:31.150 回答