Early binding in final methods
<p>I have read in multiple places that final methods are early bound but none offers a satisfactory reason. I doubt how can it be so  coz even in a final method called on parent class reference, compiler cannot say whether parent's non final or child's final method is called.<br>
Please advice.  </p>

<pre><code>class Parent {
    void meth() {
       System.out.println("parent");
}
}

class Child extends Parent {

@Override
final void meth() {
    // TODO Auto-generated method stub
    System.out.println("child");
}

public static void main(String[] args) {
    Parent parent = new Parent();
    Parent child = new Child();
    child.meth();
    parent.meth();
}
}  
</code></pre>

<p>In the above code method meth() called on child(a Parent reference) is a final method but then the JVM should need to  use a method look up table at run time as in its the child or parent method being called.</p>
