为什么 'extends Thread' 存在,而 'implements Runnable' 在所有情况下都是赢家
Why does 'extends Thread' exist, when 'implements Runnable' is winner in all cases
我知道 implements Runnable
is preferred over extends Thread
在 Java 线程中,因为它允许我们在需要时扩展其他一些 class。但如果是这样的话,extends Thread
是否也比implements Runnable
有自己的优势,如果有,这些优势是什么?
因为有时(几乎从不,但有时)您希望能够更改 Thread
的基本行为。
那是你需要扩展它的时候。
您可以通过覆盖 Thread
class 中的方法来更改它,您不能通过实现 Runnable
.
中的方法来更改它
在 Java 1.0 发布后的过去 20 多年里,被认为是好的设计模式发生了变化。但是,Java 致力于向后兼容,这意味着可能使用不良设计模式的旧代码仍然可以工作。
我最讨厌的事情之一是 StringBuffer
,让它的方法同步从来都不是一个好主意,它在十多年前就被取代了,但不幸的是,今天甚至开发人员都没有被阻止使用它新开发人员使用它,即使在他们开始使用 Java.
之前很久它就被弃用了
我知道 implements Runnable
is preferred over extends Thread
在 Java 线程中,因为它允许我们在需要时扩展其他一些 class。但如果是这样的话,extends Thread
是否也比implements Runnable
有自己的优势,如果有,这些优势是什么?
因为有时(几乎从不,但有时)您希望能够更改 Thread
的基本行为。
那是你需要扩展它的时候。
您可以通过覆盖 Thread
class 中的方法来更改它,您不能通过实现 Runnable
.
在 Java 1.0 发布后的过去 20 多年里,被认为是好的设计模式发生了变化。但是,Java 致力于向后兼容,这意味着可能使用不良设计模式的旧代码仍然可以工作。
我最讨厌的事情之一是 StringBuffer
,让它的方法同步从来都不是一个好主意,它在十多年前就被取代了,但不幸的是,今天甚至开发人员都没有被阻止使用它新开发人员使用它,即使在他们开始使用 Java.