public class Parent
{
public void test(){
}
public Parent(int c){
System.out.println( "this hava attribue is run. ");
}
public Parent(){
test();
}
}
class Child extends Parent
{
public int instanceValue = 20;
public Child(int c){
}
public void test(){
System.out.println( "instance value is: " + instanceValue);
}
public static void main(String[] args){
new Child(1);
}
}
------解决方案--------------------
我也刚学,说错了你们指出来.
运行时,父类的构造函数有先,父类里面调用了test()这个方法,因为子类重载他了,所以他不走父类的那个方法,直接走子类的.父类中没有这个instanceValue,所以运行时默认为0,
------解决方案--------------------
this hava attribue is run
每次对子类实例化时候 ,现调用父类的构造函数 ,那么根据参数判断首先是有上面那个语句输出;
然后调用子类的构造函数,由于没有做任何事情 所以无输出