|
1
191
当在“天真”、“深度优先”的方法中出现同一祖先类不止一次时,传统继承类与新类型类的分辨率顺序之间的关键差异出现了——例如,考虑“菱形继承”的情况:
这里是新款,顺序是:
具有
这是应该避免使用旧式类的原因之一:使用“菱形”模式的多重继承在它们身上不起作用,而在新样式中却起作用。 |
|
2
27
明白了,看一看 C3 linearization
你拿到B D C E F G了吗?
经过大量的尝试和错误,我对C3线性化给出了一个非正式的图论解释,如下所示:(如果这是错误的,请告诉我。) 考虑这个例子:
|
|
|
3
5
现在它输出:
阅读 this explanation 了解更多信息。 |
|
|
4
1
您看到这种行为是因为方法解析是深度优先,而不是广度优先。德维德的遗产看起来像
所以
这反映在
|