码迷,mamicode.com
首页 > 其他好文 > 详细

一个类继承Thread又实现了Runnable的详细解说

时间:2015-05-17 09:29:13      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

学过Java的同学都知道,实现线程的方法有两种

1、继承Thread,代码简单,直接编写子类,然后new子类对象,调用父类的start()方法,

public class Demo {

	public static void main(String[] args) {
		Test t = new Test();
		t.start();
	}

	static class Test extends Thread {

		public void run() {
			super.run();
			System.out.println("run");
		}

	}
}

2、实现 Runnable 接口,解决Java单继承的局限性,可以多个线程共享这个Runnable 接口的对象(多线程处理同一资源文件,例如,迅雷下载,窗口售票)

public class Demo {

	public static void main(String[] args) {
		Thread t = new Thread(new Test());
		t.start();
	}

	static class Test implements Runnable {

		public void run() {
			System.out.println("run");
		}
	}
}


如下情况:

<span style="font-size:18px;color:#ff0000;">public class Demo extends Thread implements Runnable {

	public void run() {
		super.run();
		System.out.println("run");
	}

	public static void main(String[] args) {
		Demo d=new Demo();
		d.run();
	}

}</span>




一个类同时继承了Thread类和Runnable,请问这还是一个多线程吗

回答是肯定的,这是多线程,但是上面写法是不正确的 ,  Thread类实现了Runnable接口的

上述代码,Demo是Thread的子类,Thread实现了Runnable接口,所以d也是实现了Runnable接口的一个对象,将上述代码修改一下,也是一个线程。

<span style="color:#009900;">public class Demo extends Thread implements Runnable {

	public void run() {
		super.run();
		System.out.println("run");
	}

	public static void main(String[] args) {
		Thread t = new Thread(new Demo());
		t.start();
	}

}</span>


一个类继承Thread又实现了Runnable的详细解说

标签:

原文地址:http://blog.csdn.net/u013369232/article/details/45771919

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!