首先我们来看一段代码:
//这个抽象类从它的构造方法中分别先后调用first和second方法
public abstract class TestParent{
public TestParent(){
first();
second();
}
abstract void first();//首先调用
abstract void second();//其次调用
}
//TestThread继承上面的抽象类,并声明了一个boolean类型常量,初始化赋值为false
public class TestThread extends TestParent{
private boolean b = false;//关键量
TestThread(){
super();//这里调用父类的构造方法,而后父类的构造方法先后调用first、second
}
@Override
public void first(){
b = true;//在first方法中将b的值修改为true
System.out.println("first方法中:此时b的值为->"+b);
}
@Override
public void second(){
new Thread(new Runnable(){
@Override
public void run() {
System.out.println("子线程中:此时b的值为->"+b);
}
}).start();
}
}
现在根据上面的代码,大家能否推测出如果我new TestThread()会输出什么