title: Is it "ok" to add the final keyword to an inherited/overridden method?
body: <p>In Android i create an abstract class that extends <code>View</code> (an Android class to which i have no access).
  The abstract class overrides the Views </p>
  
  <pre><code>@Override
  protected final void onDraw(Canvas canvas) {
      if(conditions) return;        
  
      // child classes should only draw if this class gives the ok
      subDraw(canvas);
  }
  
  protected abstract void subDraw(Canvas canvas);
  </code></pre>
  
  <p>however i added the final keyword here.</p>
  
  <p>The point is, i create an abstract method that the subclasses are supposed to use instead of the onDraw. So i prevent the onDraw from being overridden any further and it works.</p>
  
  <p>I know there are designs to make this better, however this works like a charm without a lot of change. My question is more in general if doing the above has unwanted side effects at runtime or other issues ?!</p>