Java教程

面向对象编程--继承中的属性查找顺序

本文主要是介绍面向对象编程--继承中的属性查找顺序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MRO 基类搜索顺序(c3算法)

  深度搜索

  广度搜索

遵循深度优先搜索顺序 :经典类

遵循广度优先搜索顺序 :新式类

 

上图为经典类 ,查找顺序,teacher_obj>>>student--大脑袋(school)--class 一条路找到黑,再去找分支

 

上图为新式类,查找顺序, teacher_obj>>>student--class--大脑袋(school)--object  先找分支再找大脑袋(school)

 

注意:class Teacher(Student,Class): 继承的类左侧的先找

 

上述为多继承,单继承更简单就是一条路找到黑>>>不管是单继承还是多继承都遵循MRO(基类搜索顺序-c3算法)--下面看实例

 

 

 python2.x中没有__mro__属性和mro()方法,需要验证自行实践

 

这篇关于面向对象编程--继承中的属性查找顺序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!