代码一:
public class TestThread2 {
public static void main(String[] args) {
Thread thread12 = new Runner1();//1. 此段要是换成 Runner1 thread12=new Runner1(); 含义又什么不同吗?
thread12.start();
int m = 10;
while (true) {
if (m > 0) {
System.out.println("main thread " + m--);
} else
break;
} }}
class Runner1 extends Thread {
public int s = 10; public void run() {
while (true) {
if (s > 0) {
System.out.println("Running Runner " + s--);
} else
break;
} }}
请问上段代码中将标识段改为Runner1 thread12=new Runner1(); 含义又什么不同吗?
谢谢各位!
public class TestThread2 {
public static void main(String[] args) {
Thread thread12 = new Runner1();//1. 此段要是换成 Runner1 thread12=new Runner1(); 含义又什么不同吗?
thread12.start();
int m = 10;
while (true) {
if (m > 0) {
System.out.println("main thread " + m--);
} else
break;
} }}
class Runner1 extends Thread {
public int s = 10; public void run() {
while (true) {
if (s > 0) {
System.out.println("Running Runner " + s--);
} else
break;
} }}
请问上段代码中将标识段改为Runner1 thread12=new Runner1(); 含义又什么不同吗?
谢谢各位!
{
public static void main(String[] args)
{
Thread thread12 = new Runner1();//1. 此段要是换成 Runner1 thread12=new Runner1(); 含义又什么不同吗?
thread12.start();
Runner1 runner = new Runner1();
runner.printName(); //定义成Runner1可以访问printName这个方法,而定义成Thread不行
int m = 10;
while (true)
{
if (m > 0)
{
System.out.println("main thread " + m--);
}
else
break;
}
}
}class Runner1 extends Thread
{
public int s = 10;
public void run()
{
while (true)
{
if (s > 0)
{
System.out.println("Running Runner " + s--);
}
else
break;
}
}
public void printName()
{
System.out.println(this.getName());
}
}
一楼说的很明白了
在執行thread12.start();訪問的run()方法都是同一個嗎?因為在API 上看到類Thread 的start()方法是:使Java 虚拟机调用该线程的 run 方法。這個run()方法是重寫的還是Thread本身的run()方法.我有跑下程式﹐應該都是執行繼承后的Run()方法﹐具體原因為何?兩者有何種區別?
这个明白么??
List lists = new ArrayList();
父类引用指向子类对象 new的是那个子类对象就调用那个子类的方法