我正在从“活动”中将数据传递给:
public FoodAdapter(BaseActivity activity, int ResoruceId, ArrayList <food> cake) {
}
但是,这给了我一个错误。为了解决这个问题,我需要带有活动,ResoruceId和其中的cake的super()。为什么我需要这个super()及其作用?
谢谢
它初始化您扩展的超类。您需要这样做,因为必须在构造函数中运行任何其他代码之前先初始化超类,因为允许子类访问其超类的状态,并且超类必须有机会设置该状态。通常,就像您的类有机会(在构造函数中)进行初始化一样,超类也需要有机会进行初始化。
如果超类仅用参数定义构造函数,则必须显式调用(用super
)超类构造函数,并传入这些参数。因此,如果需要活动和资源ID,则:
super(activity, ResoruceId); // I would change that second name!
如果超类定义了一个不带参数的构造函数,并且您没有super(...)
在构造函数中调用,则Java编译器将为您调用no-args版本插入一个(例如,它将插入super();
到构造函数的顶部)。但是,如果超类未定义零参数构造函数,则无法做到这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句