• Thread--synchronized不能被继承?!?!!!


    参考:http://bbs.csdn.net/topics/380248188

    其实真相是这样的,“synchronized不能被继承”,这句话有2种不同意思,一种是比较正常的、很容易让人想到的意思;另一种是“不正常的”或者说是“java中文界”广泛认同了的意思。
    楼主是第一种意思,其他人是第二种意思。所以,会出现该贴的尴尬讨论。
    第一种理解方式:父类中有个synchronized方法,子类继承了父类,但子类没覆写该方法。通过子类实例来使用该方法时,按“synchronized不能被继承”,意思就为:该子类的该方法就变成了非synchronized方法。
    第二种理解方式:synchronized并不属于方法定义的一部分,不能被继承。子类覆写了该方法,如果在覆写时不明确写上synchronized,那这个方法就不是synchronized。换句话说,虽然继承了,但是没把synchronized继承下来,也就意味着“synchronized不能被继承”。

    我觉得“synchronized不能被继承”这句话,没把意思表述清楚。产生这种情况的原因,我推测是这样的:某前辈详细解释了以上2种意思,最后总结的时候,使用了“synchronized不能被继承”这句不太合适的话。某无知后辈转述前辈意思的时候,就直接用了“synchronized不能被继承”。结果一传十,十传百,这句话就传开了,也让初学者产生了迷惑。

    在英文世界里,没有“synchronized不能被继承”的讨论。这也说明了点问题。

    其实楼主的问题,可以记住这么句话:synchronized方法,一定要显示标明,它是不能隐式标明的。

    中文里“一句话多种意思”的问题,真的是给学术界增加了不少麻烦!

  • 相关阅读:
    MapFile检索序列文件
    MapFile检索序列文件
    单词统计以序列格式输出
    单词统计以序列格式输出
    序列文件的读取和写入
    序列文件的读取和写入
    TypeError: list indices must be integers or slices, not tuple
    TypeError: list indices must be integers or slices, not tuple
    IndexError: tuple index out of range
    十四、数据库设计三范式
  • 原文地址:https://www.cnblogs.com/microcat/p/6340257.html
Copyright © 2020-2023  润新知