继承java.lang.Thread类并重写run方法为什么不可以创建一个新线程呢!为什么?

java怎么创建一个线程~

Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:
Tread thread = new Thread();执行该线程可以调用该线程的start()方法:
thread.start();编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。接下来我们会具体讲解这两种方法:
创建Thread的子类
创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:
public class MyThread extends Thread { public void run(){ System.out.println("MyThread running"); }}可以用如下方式创建并运行上述Thread子类
MyThread myThread = new MyThread();myTread.start();一旦线程启动后start方法就会立即返回,而不会等待到run方法执行完毕才返回。就好像run方法是在另外一个cpu上执行一样。当run方法执行后,将会打印出字符串MyThread running。
实现Runnable接口
第二种编写线程执行代码的方式是新建一个实现了java.lang.Runnable接口的类的实例,实例中的方法可以被线程调用。下面给出例子:
public class MyRunnable implements Runnable { public void run(){ System.out.println("MyRunnable running"); }}为了使线程能够执行run()方法,需要在Thread类的构造函数中传入 MyRunnable的实例对象。示例如下:
Thread thread = new Thread(new MyRunnable());thread.start();当线程运行时,它将会调用实现了Runnable接口的run方法。上例中将会打印出”MyRunnable running”。

class Jesses extends Thread { private String name; public Jesses(String name) { this.name = name; } public void run() { for (int i = 0; i < 10; i++) { System.out.println(name + "运行,i=" + i); } }}public class Jesse { public static void main(String args[]) { Jesses mt1 = new Jesses("线程 A"); Jesses mt2 = new Jesses("线程 B"); mt1.start(); mt2.start(); }}

代码输入错误造成的,操作方法如下:

1、首先在java中Thread这个类的实例化代表的是线程,启动一个新线程就需要创建一个新的Thread,如下图所示。

2、接着输入public Thread();这是Thread的无参构造方法,如下图所示。

3、然后输入public Thread(String name);创建一个名称为name的线程对象。

4、继承Thread类创建一个新的线程的语法,如下图所示。

5、最后完成线程真正功能的代码放在run()方法中,如下图所示就完成了。



...继承类(假如这个类名为NewThread)重写run方法以后
你要手动 new NewThread().start(); 这样去让线程运行啊。。。

因为都不是以样的

应该是可以的,没道理不行啊。

所有异常类皆继承哪一个类
答:在Java中,所有异常类都继承自java.lang.Throwable类,它是Java中所有错误和异常的父类。Throwable类有两个重要的子类:Error和Exception。Error类表示Java运行时系统的内部错误和资源耗尽错误,程序一般无法处理此类错误;Exception类则表示程序运行过程中可能出现的异常情况,可以通过程序进行处理和捕获。Except...

如何在java程序中实现多线程?使用Thread子类和实现 Runnable借口两种方法...
答:第一种:继承Thread类,通过编写线程继承thread类,重写run()方法来实现线程,这个类是在java.lang包中定义的,但是一个类只能继承一个父类,这个方法有这个局限。第二种:直接实现Runnable多线程接口,Runnable只有一个抽象方法run ,并没有start()方法,也就是说要通过Thread类来启动Runnable实现的...

java.lang里面的类有哪些可以被继承?
答:并不是所有的类都可以继承的,用final关键词修饰的类就是不能继承的类,比如说常用的String类就是被final修饰的类,String类就不能被继承。//java.lang包中不能被继承的类:public final class Byte public final class Character public static final class Character.UnicodeBlock public final class Cl...

java如何实现多线程绘图
答:首先,如果你只是要实现电子时钟,根本就不需要用到多线程。如果你真的是要使用,就新建一个类,实现Runnable接口就是了。如:class MyThread1 implements Runnable{ public MyThread(){ } public void run(){ } } 使用的时候,就:Thread myThread=new Thread(new MyThread());myThread.start();...

能解释一下java的线程的使用
答:1. 虚拟的CPU,封装在Java.lang.Thread类中。2. CPU所执行的代码,传递给Thread类。3. CPU所处理的数据,传递给Thread类。图6.1线程 6. 1. 2 线程体(1)Java的线程是通过Java.lang.Thread类来实现的。当我们生成一个Thread类的对象之后,一个新的线程就产生了。此线程实例表示Java解释器中的真...

java.lang.abstractmethoderror问题,怎么解决
答:综述解决方法是:去掉被调用方法的abstract(抽象);或者继承该类,然后子类重写这个方法,去调用子类重写的方法。原因是调用抽象方法时抛出。所以这样就解决了。计算机语言:计算机语言(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过...

JAVA中什么是继承?
答:继承在本职上是特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。1.Java继承的语法格式:Java继承的关键字是:extends public class 子类名 extends 父类名{...} 如: public class UNStudent extends Student {...} 注:1....

JAVA继承问题,实际参数列表与形式参数列表长度不同怎么解决
答:Cylinder缺少一个空参构造函数 public Cylinder() { super();} 因为在Ringcylinder的构造函数中会默认调用 super();而Cylinder不存在该构造函数所以报错。

全国信息技术应用大赛 前五届的JAVA预赛 试题(单选题与多选题)及答案...
答:A、实现java.lang.Runnable接口并重写start()方法 B、实现java.lang.Runnable接口并重写run()方法 C、继承java.lang.Thread类并重写run()方法 D、实现java.lang.Thread类并实现start()方法Applet可以完成的操作是()。C A、读取客户端文件 B、在客户端创建新文件 C、读取Applet所在服务器的文件 D、在客户端调用...

两道JAVA题,谁来给我解释一下,稍微详细点的
答:把原来的字符数组的第1个元素改为了g.这就是引用数据类型和基本数据类型的区别.第二题选A!C肯定是错的! 属于lang包!B也不对,线程实现有2种方式,第一,扩展java.lang.Thread类.第二,实现Runnable接口 从Thread类中继承的创建方式我还是可以实现Runnable接口,也就是说还是不能防止多父类的出现!!

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网