日期:2014-05-20  浏览次数:20753 次

有关匿名内部类的问题
例如,在return new Contents(){};中,会创建一个继承自Contents的匿名类的对象,那这个new Contents()不是应该调用的Contents的构造函数吗。
在如果,在需要参数时,如return new Contents(i){};中,到底这个参数是由导出类传递给基类的,还是直接在基类的构造器中使用的。
求助大神。

------解决方案--------------------
在构造子类对象之前需要构造父类对象,返回的对象还是子类对象,所以会调用父类的构造函数
而传递的参数只是在父类的构造函数中赋值给子类继承的属性的值
Java code
public Test1(int a)
{
     this.a = a;//给子类继承的属性a赋值
}


new Test1(1)//调用父类的带参数构造函数
{
            
};

------解决方案--------------------
System.out.println(this.getClass());看下输出就知道 其实是子类的对象