Abstract : Inheritance is one important and controversial issue of object-oriented programming, because of it's different implementations and domain uses: design methods, database, knowledge representation, data mining, object programming languages, modelling. .. Most of the object-oriented programming languages have a direct implementation of specialization, thus we promote the idea that a relationship between classes based on generalization can help in the process of reuse, adaptation, limited evolution of class hierarchies. We name it reverse inheritance. Our goal is to show that reverse inheritance class relationship and it's supporting mechanisms can be used to accomplish the objectives mentioned earlier. Another goal is to prove the feasibility of the approach. On the other hand we analyze some use cases on how the objectives are reached.