ThreadTest t = new ThreadTest();// ThreadTest已经实现了接口Runnable
new Thread(t).start();
请问new Thread(t).start();这句代码为什么会调用Runnable接口子类对象t中的run()函数?我的理解是因为首先new Thread(t)是先定义了一个Thread线程类的匿名对象,然后这个匿名对象去调用start()函数,为什么这个strat()函数不是启用Thread匿名对象中的run()函数,Thread匿名对象中不是也有run()函数吗?而却调用了Runnable接口子类对象t中的run()函数?虽然t通过构造函数初始化传递给Thread的匿名对象,但这有什么关系吗?
上面已经提到 TestThread已经实现了Runnable接口 并且重写了run()函数,所以肯定是通过public Thread (Runnable target)方式也就是Runnable方式实现多线程,最主要的是我的程序new Thread(t).start()( 也就是这段代码)最终调用的是TestThread中重写的run()函数,不是Thread自己的run()函数 ,我不明白为什么?
慕的地10843
FFIVE
相关分类