【问题标题】:Thread and super keyword线程和超级关键字
【发布时间】:2015-05-13 13:16:16
【问题描述】:

以下代码将输出Program A。请用super.run();解释它。

class RunnableA implements Runnable{
    public void run(){
        System.out.println("Program A");
    }
}

class MyThread extends Thread{
    MyThread(Runnable r){
        //set as a target
        super(r);
    }
    public void run(){
        //System.out.println("MyThread");
        super.run();
    }
}

class Demo{
    public static void main(String args[]){
        RunnableA a1=new RunnableA();
        //a1.start(); //Illegal
        new MyThread(a1).start();
    }
}

【问题讨论】:

  • 添加更多关于您正在寻找的内容的描述。您的问题非常不清楚,将被关闭。

标签: java multithreading


【解决方案1】:

super.run(); 表示MyThreadrun() 方法执行Threadrun() 方法(它调用传递给构造函数的Runnable 实例的run() 方法)。

因此new MyThread(a1).start(); 执行RunnableArun() 方法并打印"Program A"

在此示例中,MyThread 毫无用处,因为它没有为Thread 添加任何功能。您可以将 main 方法替换为:

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

并获得相同的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多