权重域名

已备案域名,老域名交易,高权重域名购买,百度权重域名出售,权重域名买卖,万网已备案老域名注册查询抢注转让,买老域名,二手老域名,鹰潭网站建设

多态方法在构造函数中的行为

多态方法在构造函数中的行为

构造函数的调用顺序也带来了一个有趣的难题。如果构造函数调用了一个动态绑定的方法,而这个方法又属于正在创建中的对象,那它会产生什么样的效果呢?如果是普通方法,你猜也可以猜到它会怎么做:由于不制动啊这个对象应该算是基类还是派生类的,因此动态绑定会在运行时进行解析。处于一致性的考虑,你可能认为构造函数也应该这么做。

事实并非完全如此。如果你在构造函数里面调用了动态绑定的方法,那么它会使用那个覆写后的版本。但是这个效果会有些出人意料,因此会称为一些不易排查的bug的藏身之处。

从理论上讲,构造函数的任务就是创建对象(这可不是什么轻而易举的事)。从构造函数的角度来看,对象可能只创建了一半——你只知道基类对象已经初始化了,但是你还不知道它会派生出什么类。但是动态绑定的方法调用,会从外面把手伸进类系。它调用的是派生类的方法。如果你在构造函数里面这么做的话,你就可能调用了一个会访问尚未初始化的成员的方法了——注定会出问题。

«1»