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

派生类的构造函数为什么每次都要super?
本帖最后由 u010765463 于 2013-05-28 14:25:12 编辑
派生类的构造函数为什么每次都要super(派生类)?为什么每次都要调用基类的构造函数呢?不加super为什么就不行?

在c++中
class B
{
public:
B(){}
~B(){}
private:
};

class D : public B
{
public:
D(){}
~D(){}
};
int main()
{
D obj;
return 0;
}

基类初始化对象会自动调用基类相应的构造函数。

------解决方案--------------------
派生类是针对c++里面提出的,java里面的叫继承。
java里不是非得要加上super的
------解决方案--------------------
如果父类存在默认构造方法(就是无参数的构造方法),可以不加super的(因为调用子类的构造方法,会默认先super()的);如果父类没有默认构造方法,子类构造方法必须显示的调用super(...)