this、super问题急求解
public class Test { 
    public static void main(String [] args) {         
    	Child c = new Child();     
    	} 
    } 
class Father { 
    public Father() {
        System.out.println("父类无参构造函数");     
    } 
    public Father(String name) { 
        System.out.println("父类有参构造函数");             
        } 
    } 
class  Child extends Father {      
	public Child() {         
		this("dd"); 
        System.out.println("子类无参构造函数");     
	} 
    public Child(String name) {         
    	super("dd"); 
        System.out.println("子类有参构造函数");     
    } 
}
结果为什么是这样呢? 
------解决方案--------------------public class Test
{
	public static void main(String[] args)
	{
		Child c = new Child();   //第一步:生成对象,调用子类构造方法;
	}
}
class Father
{
	public Father()
	{
		System.out.println("父类无参构造函数");
	}
	public Father(String name)
	{
		//第四步:打印;
		System.out.println("父类有参构造函数");
	}
}
class Child extends Father
{
	public Child()
	{
		this("dd"); //第二步,调用Child类的有参构造方法;
		System.out.println("子类无参构造函数");
	}
	public Child(String name)
	{
		super("dd"); //第三步,调用父类的有参构造方法;
		System.out.println("子类有参构造函数");
	}
}
所以从最里层开始打印;
------解决方案--------------------回答你这个问题前,先告诉你一个继承里面关于子父类各自的构造函数继承的问题,子类继承父类,子类的构造函数默认第一行是super()     如果你写了 this (X) 或者是 super(X)   其中里面的super(X) 是父类有参数构造,  那么它的默认的super() 就会被你写的覆盖了,   你这题是先创建一个子类对象,并且new Child();是无参数构造  ,他就会去找子类的无参数构造,结果执行第一行 发现了this(“dd”),就会调用本类的有参数构造,到了有参数构造中发现了super(“dd”)‘于是去找父类有参构造,打印了第一句,在打印子类有参构造,之后回到子类无参构造打印最后一句