Java 线程对象实现错误代码分析
Java 线程对象实现错误代码分析
问题: Jerry想要实现一个线程对象,以下哪个代码是错误的?
选项:
A. ```java class InfoManage extends Thread { public static void main(String[] args) { InfoManage im = new InfoManage(); im.start(); } }
B. ```java
class InfoManage implements Runnable {
@Override
public void run() {
System.out.println('running');
}
public static void main(String[] args) {
InfoManage im = new InfoManage();
im.start();
}
}
C. ```java class InfoManage { public static void main(String[] args) { Thread t = new Thread(new Runnable() { @Override public void run() { System.out.println('running'); } }); t.start(); } }
D. ```java
class InfoManage implements Runnable {
@Override
public void run() {
System.out.println('running');
}
public static void main(String[] args) {
InfoManage im = new InfoManage();
Thread t = new Thread(im);
t.start();
}
}
答案: C
解释:
选项C中的InfoManage类既没有继承Thread类,也没有实现Runnable接口。在Java中,要创建一个线程对象,需要满足以下两种方式之一:
- 继承
Thread类:InfoManage类继承Thread类,并重写run()方法,该方法包含线程要执行的代码。 - 实现
Runnable接口:InfoManage类实现Runnable接口,并实现run()方法,该方法包含线程要执行的代码。然后,创建一个Thread对象,并将InfoManage对象作为参数传入。
选项A、B、D都满足了上述条件,因此都是正确的代码。而选项C因为没有实现任何线程相关的接口,所以无法作为线程对象使用。
结论: 要正确创建线程对象,必须继承Thread类或实现Runnable接口。选项C中InfoManage类既没有继承Thread类也没有实现Runnable接口,因此无法作为线程对象使用,所以代码是错误的。
原文地址: https://www.cveoy.top/t/topic/ozZr 著作权归作者所有。请勿转载和采集!