比如下面的这个程序 
public class ConcurrentHelloWorld extends Thread{ @Override
public void run() {
// TODO Auto-generated method stub
super.run();
for(int i = 0; i < 10;i++)
System.out.println("hello world " + i + Thread.currentThread().toString());
}

public ConcurrentHelloWorld(){
super();
} /**
 * @param args
 */
public static void main(String[] args) {
Thread thread = new Thread(new ConcurrentHelloWorld());
thread.start(); }}
super();是做干什么的?
super("String"); 有是干撒的啦?

解决方案 »

  1.   

    自动重写方法吧,编译器加的,如果没什么用处,删掉就是,此处就就看一下有没有Runnable对象,有的话执行它的run方法,不写一样,构造方法里那个就是调用父类构造,去掉后程序运行是也能给自动加上
      

  2.   

    super();调用父类的无参构造方法。
    super("String");调用父类一个参数的构造方法,并将参数传给父类。
      

  3.   


    哥哥 这个super是我自己加上去的  不是编译器加的 
    我知道这个方法调用的是 
    public Thread() {
    init(null, null, "Thread-" + nextThreadNum(), 0);
    }然后再调用 Thread.init();这个 private void init(ThreadGroup g, Runnable target, String name,
                          long stackSize)  谁可以帮我解释下啊  到底调用和不调用有什么区别啊