某程序定义了一个JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是
某程序定义了一个JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是
A、继承Thread类,在类内定义run()方法,声明和创建线程对象,并让该对象调用Start()方法
B、继承Thread类,在类内定义run()方法,声明线程对象,并让该对象调用Start()方法
C、声明实现Runnable接口,在类内实现run()方法,声明线程对象,创建线程,并调用run()方法
D、声明实现Runnable接口,在类内实现run()方法,声明和创建线程对象,并让该对象调用Start()方法
【正确答案】:D
【题目解析】:Java程序实现多线程应用有两种途径:一是继承Thread类声明Thread子类,用Thread子类创建线程对象;二是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。第一种途径的步骤是:先声明一个Thread类的子类,并在子类中重新定义run()方法;当程序需要建立线程时,就可创建Thread子类的实例,并让创建的线程调用start()方法,这时,run()方法将自动执行。第二种途径的步骤是:声明实现Runnable接口的类,在类内实现run()方法;并在类内声明线程对象,在init()方法或start()方法中创建新线程,并在start()方法中启动新线程。由于该类是JPanel的子类,且Java中无法实现多继承,因此无法同时继承Thread类,所以A和B项是错误的;C项实现多线程的步骤错误。所以D项是正确的。
Top