同步方法必须持有一个对象锁,而如果用多态作为体现的话,那么每个线程持有的对象不一样,也就达不到目的。我这样理解对嘛?

解决方案 »

  1.   

    同步的方法必须持有一个锁对象,它的默认的锁对象是this它自身对象,而它自身又是抽象类不能被实例化的,相矛盾.
    所以抽象方法中不能synchronized .
      

  2.   

    因为同步的方法持有的锁,是this,
    而抽象类不能被实例化,也就不存在这个抽象类的对象this。但抽象类的抽象方法必须在其子类被实现,
    而子类(此子类不是抽象类)可以将这个在父类定义的抽象方法声明为同步的,
    这也正好符合 抽象方法 把具体实现放到子类来实现的思想。