Why “implements Runnable” is Preferred over “extends Thread”?
Java线程本身实现了一个Java EDCOX1 0!而且根据大多数互联网专家的说法,实现可运行性优于扩展线程!即使我们不能在thread类之外使用unnable!那么,为什么我们更倾向于实现
如果我听上去很困惑,我会道歉的。
最常见的区别是:
当您扩展线程类时,不能扩展您需要的任何其他类。(如您所知,Java不允许继承多个类)。实现可运行时,可以为类节省空间,以便将来或现在扩展任何其他类。
然而,显著的差异是。
扩展线程类时,每个线程都会创建唯一的对象并与之关联。实现可运行时,它将同一对象共享给多个线程。
请检查:http://manikandanmv.wordpress.com/tag/extends-thread-vs-implements-runnable/
如果您的类正在扩展线程类,那么它将成为继承属性线程类的单个线程,因此它将很重。(当扩展线程类时,每个线程创建唯一的对象并与其关联,但在实现可运行时,它将同一对象共享给多个线程)。
如果您的类正在实现可运行接口,那么您只重写
一个类只能有一个超类,但可以实现任意数量的接口。通过扩展
Java只允许单继承,这意味着,如果您从EDCOX1(0)继承,就无法继承任何其他类。实现
你听起来很困惑。不管怎样,我知道有一个原因,因为我们可以使用runnable实现相同的功能,所以我们应该继续,因为如果我们要实现runnable,那么我们可以扩展其他类,如果我们要扩展thread类,这是不可能的。