From what I've learned so far, Inheritance is the lesser of the two by a far margin. Composition is flexable, scalable and you can make changes without collapsing an entire tree. I understand you may want to prevent other people from potentially removing vital code, but it also means that if a BETTER way of doing something is found, you're already locked in, and now have a potential monster task of rebuilding the inheritance hierarchy. Better hope there was good documentation or you're in for a lot of debugging. (Depending on the scale of the program.)
TLDR: Before I build a potentially bad habit, is it better to use encapsulation paired with composition over using inheritance? My primary argument is future proofing.