Traits are a language technology that complements inheritance as a means for code reuse and class structuring. Traits encapsulate collections of methods so that they can be used and reused anywhere in the inheritance hierarchy. An important property of traits is that classes structured with traits have the same semantics as classes structured without them. With environment support, a programmer can move freely between views of the system with or without its component traits. In this paper we describe an environment for programming with traits for Java implemented in Eclipse.
Philip J. Quitslund, Emerson R. Murphy-Hill, Andre