四、构造器和多态
构造器不同于其它种类的方法,它们实际上是static方法,只不过该static方法是隐式的。基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用。这样做是有意义的,因为构造器有一项特殊的任务:检查对象是否正确的被构造。导出类只能访问它自己的成员,不能访问基类中的成员(基类中的成员通常是private的),只有基类的构造器才有恰当的权限对自己的元素进行初始化。因此,必须另所有的构造器都得到调用,否则就不能正确构造完整的对象。在导出类的构造器主体中,如果没有明确指定调用基类的构造器,它就会自动调用基类默认的构造器,这个时候如果基类没有默认构造器,编译器就会报错,出现这种情况,就需要显示地调用基类的构造器。