定义8个类 A,B,C,D,E,F,G,H
A继承B,C,D
C继承E E继承G G继承H
B继承D D继承F F继承H
下面看表示的直观图
多继承类图表
下面是继承的执行顺序:
#首先找到A继承的三个类的深度继承顺序,放到一个列表中
L[B] = [B,D,F,H] #B往上面的继承顺序
L[C] = [C,E,G,H] #C往上面的继承顺序
L[D] = [D,F,H] #D往上面的继承顺序
#第二步:A自己的广度,第一层
L[A] = [B,C,D]
最终顺序list = [A,B,C,D,F,E,G,H,O]
重点:
#每个列表的第一个元素为头部,从第一个列表的头部开始找,找其他列表中尾部是否含有
这个类名,如果没有,提取出来放到一个列表中,如果有,找下一个列表的头部,循环下去
只要提取来一个,我们就从第一个列表的头部接着重复上面的操作.
1 [B,D,F,H] [C,E,G,H] [D,F,H] [B,C,D]
2 [D,F,H] [C,E,G,H] [D,F,H] [C,D] #提取了头部的B,然后将其他列表头部的B删除,并将B放到list中
3 [D,F,H] [E,G,H] [D,F,H] [D] #因为第一个列表的D在其他列表的尾部存在,所以跳过D,然后找第二个列表的头部C,提取了头部的C,然后将其他列表头部的B删除,并将B放到list中
4 [H] [H] [H] []
看不懂的同学可以加我QQ交流:516833759