在对子类对象初始化时,父类中的构造函数也会运行.那是因为子类中的构造函数中默认第一行有一条隐式语句super();
super():该语句会访问父类中空参数的构造函数,而且所有类中所有的构造函数默认第一行都是super();包括父类,因为object是所有类的终极类.
如果父类中没有空参数的构造函数(说明父类中的构造函数全部是有参数的),那么需要子类在其构造函数中手动通过super(参数)来获取父类的构造函数.
为什么子类一定要访问父类中的构造函数呢?
因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据初始化的(构造函数就是为了给数据进行初始化,所以要先去看父类中的构造函数是怎么定义的).否则你连父类中有什么属性都不知道,何谈继承?
|