【发布时间】:2015-07-04 18:36:20
【问题描述】:
synchronized 不是方法签名的一部分。但是当我们重写一个方法时,决定被重写的方法是否编译的不仅仅是方法签名。
例如,我们不能添加或扩展已检查的异常
为什么synchronized 在多态中没有作用。 synchronized 方法不应该被覆盖而不放置synchronized。因为使用超类变量的人可能认为所有方法都是线程安全的。
但是应该允许使用synchronized 覆盖非同步方法,因为它正在添加更多功能,但另一方面用户不会遇到任何错误,除了时间延迟。
我正在寻找一个合乎逻辑的解释,它可以阐明“为什么这样设计”。
【问题讨论】:
标签: java multithreading synchronization polymorphism