title: Two different Inheritance-chains without breaking the DRY-principle
body: <p>I have a problem with using the right inheritance-chain without loosing good parts of the DRY-principle.</p>
  
  <p>Given the following structure:</p>
  
  <ul>
  <li>abstract class A is my base for all classes</li>
  <li>abstract class B : A is my base for all classes that can have special features (made available through B)</li>
  </ul>
  
  <p>Now, I need to have two new classes which share the same features. But one is of type A whilst the other one is of type B. (This can not be changed!)
  Both classes should have a method <code>SetSize()</code>.</p>
  
  <p>So at the end there would be class C:A and D:B, both to have the same SetSize method.</p>
  
  <p>Question: How would I create a base-class, intermediate layer to have the <code>SetSize()</code>-method only declared/implemented once (DRY)?
  I guess something about using interfaces or some static helper-classes to implement the logic of <code>SetSize()</code>?</p>
  
  <p>Are there any patterns or best-practices to achieve this behavior?</p>