例如,在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());看下输出就知道 其实是子类的对象