title: Odoo extension and inheritance
body: <p>Odoo has three types of inheritance, and I have at least that number of questions.</p>
  
  <p><strong>1. 'Normal' Inheritance (_inherit)</strong></p>
  
  <p>This is relatively intuitive to me - but why don't they just do it in the pythonic way: </p>
  
  <pre><code>ChildClass(ParentClass):
  </code></pre>
  
  <p>Why do they have the (seemingly equivalent):</p>
  
  <pre><code>ChildClass(model.Model):
       _inherit = 'module.parentclass'
  </code></pre>
  
  <p><strong>2. Extension</strong></p>
  
  <p>This makes no sense to me (in that I don't know why you would use it), an example is below, but can anyone give me a practical use case.
  <a href="http://www.odoo.com/documentation/9.0/reference/orm.html#extension" rel="noreferrer">http://www.odoo.com/documentation/9.0/reference/orm.html#extension</a></p>
  
  <p><strong>3. Delegating (_inherits)</strong></p>
  
  <p>This doesn't really make sense to me either, it seems like a multiple subclassing but of just fields, not methods.</p>
  
  <p><strong>QUESTION</strong></p>
  
  <ol>
  <li><p>Why does _inherit exist, what benefits/differences over normal subclassing?</p></li>
  <li><p>When/why would you extend? I think I have an idea, but I'm sure someone else can express clearer.</p></li>
  <li><p>Maybe a little what,why about _inherits</p></li>
  </ol>