java - 我可以同步覆盖的方法吗?

标签 java synchronized overriding

我正在重写父类(super class)中的一个方法,但是我希望这个方法是同步的。 允许吗?有什么替代方案?

最佳答案

是的,这是允许的,因为它不会改变契约(Contract),而是会改变实现。

认为您总是可以简单地添加一个同步块(synchronized block):

synchronized(this) { 

就在方法的开头,这将实现大致相同的结果。该方法中还可能有其他(可能隐藏的)更深的锁,这使得它真正成为实现的一部分,而不是 API。

关于java - 我可以同步覆盖的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553125/

相关文章:

java - 使用 Java 读取大型 excel 文件的最佳 API 是什么?

Java线程: Query regarding Thread waiting state

c++ - 在 C++ 中覆盖虚函数时可以更改返回类型吗?

java - Google App Engine- java.lang.IllegalStateException : Committed Error

java - 如果部分测试花费的时间太长,如何从 JUnit 测试返回到 main 方法

java - 简单的java同步问题

java - 从内部类调用外部类的同步方法

javascript - 试图覆盖警报,它有效,但执行两次

java - Java中覆盖方法的更广泛的参数类型

java - 运行我的小程序时出现 ClassNotFoundException