Object-oriented programming
Trait在面向对象程序设计中，是一个不可实例化（uninstantiable）的方法与类型的集合，为一个对象或算法提供了策略（policy）或实现自身接口的细节功能。trait为类提供了一套方法，同时也意味着类必须实现这么一套方法。