Perl Moose中共享基类的多重继承

时间:2016-06-30 21:42:20

标签: perl oop multiple-inheritance moose

让A,B,C,D为驼鹿类。

让B和C都从A继承。让D也从B和C继承。

“重复”属性会发生什么(B和C中的A属性)?

1 个答案:

答案 0 :(得分:2)

请参阅 Modern Perl 中的Method Dispatch Order

  

对于单父类,方法调度顺序(或方法解析顺序或MRO)是显而易见的。查看对象的类,然后查看其父类,依此类推,直到找到方法或用完父类。从多个父项继承的类(多重继承)-Hovercraft扩展了Boat和Car-require-trickier dispatch。 关于多重继承的推理很复杂。尽可能避免多重继承。 (强调我的)

     

Perl 5使用深度优先方法解析策略。在搜索后续父项的类之前,它会递归搜索第一个命名父项的类和所有父项的父项。 mro pragma(Pragmas)提供了替代策略,包括C3 MRO策略,在搜索任何父母之前搜索特定班级的直系父母。