关于java:为什么’extends Thread’存在,当’implements Runnable’在所有情况下都是赢家时

Why does 'extends Thread' exist, when 'implements Runnable' is winner in all cases

本问题已经有最佳答案,请猛点这里访问。

我知道,在Java线程中,EDCOX1的0以上是优于EDCOX1(1)的,因为它允许我们在需要时扩展一些其他类。但如果是这样的话,extends Thread是否也比implements Runnable有自己的优势?如果是,这些优势是什么?


因为有时(几乎从来没有,但有时)你想改变EDOCX1的基本行为。

那是你需要延长的时候。

您可以通过重写Thread类中的方法来更改它,而不能通过实现Runnable类中的方法来更改它。


自从Java 1发布以来的最后20年中,被认为是一个好的设计模式已经发生了变化。然而,Java致力于向后兼容性,这意味着旧代码可能会使用较差的设计模式仍然有效。

我最讨厌的一个是StringBuffer,因为它从来都不是一个好主意,使它的方法同步,被替换了几十年前,但不幸的是,开发人员并没有阻止使用它今天,甚至新的开发人员使用它,即使它被蔑视很久以前,他们开始使用Java。